2 pan422130300 pan422130300 于 2016.09.12 14:45 提问

socket客户端收包方式问题

问个问题,客户端用socket收包,Receive方法接受缓冲4096个字节,当包大小大于4096字节时候,是不是会Receive到2次?要把前面的缓存起来然后拼合?
还有socket接受到的包是不是100%连续的?会不会因为网络原因丢了包,而导致前后包不一致?

1个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.12 15:00

不是连续的100%的原因是由于缓冲区并不一定是4096的整数倍,所以有时候接收的数据不到4096,但是还没有接收完,,
丢包,基本上没碰过丢包的情况,如果真的丢包了,没办法,重传.
收到数据时,先把收到的数据自动拼接再提取就没有问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!