C#socket数据异常分包

皮蛋胖胖粥 2018-12-29 05:43:49
使用C#socket编写服务端程序,监听本机127.0.0.1固定端口,接收本机第三方程序传过来的数据(通过127.0.0.1传送)。通过打印日志查看,偶发性的出现数据分包现象,时间间隔固定在1ms或者完全相同(毫秒数也相同),数据远没有超过最大限制值,不知道是什么原因?
...全文
231 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2019-01-02
  • 打赏
  • 举报
回复
引用 楼主 皮蛋胖胖粥 的回复:
使用C#socket编写服务端程序,监听本机127.0.0.1固定端口,接收本机第三方程序传过来的数据(通过127.0.0.1传送)。通过打印日志查看,偶发性的出现数据分包现象,时间间隔固定在1ms或者完全相同(毫秒数也相同),数据远没有超过最大限制值,不知道是什么原因?

tcp是基于流的,所以不处理粘包肯定是不行的。
即使在测试条件下,很少有粘包发生,也得处理。
一旦网络状况较差,或者运行在公网上,
那么粘包是必然发生的。
smwhotjay 2018-12-30
  • 打赏
  • 举报
回复
tcp recv 过多或过少 就是所谓的沾包 分包。偷懒的解决办法就是no delay 设置socket. 我反正没这么玩过。我都是老老实实分包的。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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