reduce the call times for recv