socket编程
l_z_s_001
这个作者很懒,什么都没留下…
展开
-
清空socket接收队列
在socket建立时,linux的内核会为socket分配一个发送缓冲区和一个接收缓冲区,实际上是一个struct sk_buff的队列,当我们调用send/sendto/sendmsg及recv/recvfrom/recvmsg时,会发送或接收队列中的第一个数据。现在我们只考虑接收的情况,如果甲一直不停的向乙发送消息,而乙中每次调用recv/recvfrom/recvmsg都想得到最新的数据原创 2009-10-19 12:40:00 · 14812 阅读 · 3 评论 -
recvfrom/sendto的效率
在IP协议中,有一个fragment offset表示当前IP包的字节偏移,它是2bytes。所以recvfrom和sendto的数据大小不能超过64K。我们知道IP包的大小不能超过1500个字节,加上MAC头不能超过1514个字节。如果我们采用UDP协议,一个IP包最大的UDP payload为1472个字节(1472 + 8(UDP) + 20(IP) + 14(MAC)). 如果我们每个原创 2009-10-19 18:37:00 · 6604 阅读 · 6 评论