socket接收数据掉包有关问题,
socket接收数据掉包问题,请教高手?
我做的是socket client端,而服务端采用的是push的方式,数据通信定义如下:
包长度(4字节),包。先接收包长度4个字节,然后根据这个长度再接收包数据。
我采用的是recv线程,但是有时候得到的长度是无限长和无穷小的负数,郁闷。
但是人家采用的是c#,java写的客户端去接收数据的话,就没有问题,我估计是c#和java已经封装好了。
我该怎么办才好呢?
------解决方案--------------------
接收无非就是recv
能有什么问题呢
难道是小大端?
------解决方案--------------------
我做的是socket client端,而服务端采用的是push的方式,数据通信定义如下:
包长度(4字节),包。先接收包长度4个字节,然后根据这个长度再接收包数据。
我采用的是recv线程,但是有时候得到的长度是无限长和无穷小的负数,郁闷。
但是人家采用的是c#,java写的客户端去接收数据的话,就没有问题,我估计是c#和java已经封装好了。
我该怎么办才好呢?
------解决方案--------------------
接收无非就是recv
能有什么问题呢
难道是小大端?
------解决方案--------------------
- C/C++ code
nTotal = pDataFirst4[0] + (pDataFirst4[1] << 8) + (pDataFirst4[2] << 16) + (pDataFirst4[3] << 24);
------解决方案--------------------
------解决方案--------------------
没细看你的代码,不过,从我的分析来看
假如第一次 socket 收到 2 个字节;
然后再收到 2 个字节,
然后再收到后面的有效数据,
似乎这个代码就不能正常处理了
------解决方案--------------------