摘要: 通常recv有几种返回值 1.==0 表示收到FIN包, 因为FIN包,是状态为标记为FIN的空包,没有携带数据,所以recv的长度为0 2.>0 表示收到了数据, 但是有没有收完,是不知道的 3.<0 1) == EAGAIN 表示接收缓冲区中已经没数据了,需要暂停下,业务程序需要检查下包的完整性 阅读全文
posted @ 2016-04-22 14:50 JinleiZhang 阅读(5458) 评论(0) 推荐(0) 编辑
摘要: 结论: linux开启SO_LINGER时,如果设置l_linger为非0, 不管是阻塞socket,非阻塞socket, 在这里都会发生阻塞, 而并不是UNP所讲到的( 非阻塞socket会立即返回EWOULDBLOCK) 测试结果见这里 https://www.nybek.com/blog/20 阅读全文
posted @ 2016-04-22 14:42 JinleiZhang 阅读(2472) 评论(0) 推荐(0) 编辑