SOCKET接受数据过长.如何保证接受完全.

路过路人乙 2013-03-29 07:04:15
在服务端用SOCKET发送数据的时候发现由于字符串过长(实际上是将一个json转化成字符串发送),发送到客户端的时候漏了一少部分..

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


如何发送和接受这种比较长的字符串呢?
...全文
683 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2013-04-03
  • 打赏
  • 举报
回复
tcp是基于流式的协议 ,你必须定义应用协议比如用《》把数据包起来,通过判断包头包尾,来判断接受完整 。
pp616 2013-04-02
  • 打赏
  • 举报
回复
先发一个长度 然后 收到预定长度的数据后再做处理。
周药师 2013-03-31
  • 打赏
  • 举报
回复
主要还是协议的处理,定义好协议 在规定的约束下直接结束完整的数据才会认为完成, 你可以参考 通讯中类似 粘包 的处理
dataxdata 2013-03-30
  • 打赏
  • 举报
回复
最好约定一个合适的长度,如果超过的这个长度,在发送的时候拆分一下,分成几次发送,在接收端再拼装起来

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧