问个问题,客户端用socket收包,Receive方法接受缓冲4096个字节,当包大小大于4096字节时候,是不是会Receive到2次?要把前面的缓存起来然后拼合?还有socket接受到的包是不是100%连续的?会不会因为网络原因丢了包,而导致前后包不一致?
不是连续的100%的原因是由于缓冲区并不一定是4096的整数倍,所以有时候接收的数据不到4096,但是还没有接收完,,丢包,基本上没碰过丢包的情况,如果真的丢包了,没办法,重传.收到数据时,先把收到的数据自动拼接再提取就没有问题