首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

SOCKET接受数据过长.怎么保证接受完全

2013-04-09 
SOCKET接受数据过长.如何保证接受完全.在服务端用SOCKET发送数据的时候发现由于字符串过长(实际上是将一个

SOCKET接受数据过长.如何保证接受完全.
在服务端用SOCKET发送数据的时候发现由于字符串过长(实际上是将一个json转化成字符串发送),发送到客户端的时候漏了一少部分..

似乎发送的时候已经发送完了..由于数据被拆分成了2条..接受的时候会触发2次onread事件...


如何发送和接受这种比较长的字符串呢?
[解决办法]
最好约定一个合适的长度,如果超过的这个长度,在发送的时候拆分一下,分成几次发送,在接收端再拼装起来
[解决办法]
主要还是协议的处理,定义好协议
在规定的约束下直接结束完整的数据才会认为完成,
你可以参考 通讯中类似 粘包 的处理

[解决办法]
先发一个长度 然后 收到预定长度的数据后再做处理。
[解决办法]
tcp是基于流式的协议 ,你必须定义应用协议比如用《》把数据包起来,通过判断包头包尾,来判断接受完整 。

热点排行