回 帖 发 新 帖 刷新版面

主题:接收单个数据包的疑问

我想知道,当一个数据包发过来时,可能由于种种原因,数据包过来的比较慢,但是是一个数据包,不超过1000字节,当套接字发出接收消息,程序调用recv()会出现收到这个数据包的一部分吗? 还是可以全部接收?

回复列表 (共2个回复)

沙发

实际上部分接收的可能性非常高,这是由于网络路由的不确定(稳定性造成的),即数据断桢现象,你可以参看我回答的 一个关于接收数据包处理断桢的帖子:http://bbs.pfan.cn/post-293341.html

板凳


从我的使用情况来看,一般不会出现收到一半的情况,要么收到,要么没有.如果收到部分,一般原因是因为双方没有约定好BUFFER的大小,这一点,一定要注意.双方如果任一方改动预先约定的BUFFER的大小,我的经验是最好断开一次连接,重连一次.

           一家之言,仅供参考.

我来回复

您尚未登录,请登录后再回复。点此登录或注册