怎样清空socket的系统接收和发送缓冲区?有没有现成的函数?

yinyu 2000-07-22 09:55:00
感谢关注这个问题!
我觉得在在同步socket中,每次在发送和接收数据之前,应该清空系统的接收和发送缓冲区(特别是接收缓冲区),这样主要为了避免:如果上次接收数据时,因为某些原因(如数据投申明的数据长度与实际数据长度不符合)没有将系统接收缓冲区里的数据接收完,那么下次接收时就有可能将这部分垃圾数据当作另一次数据的起始部分,造成数据紊乱,有没有什么办法避免这种问题,有现成的函数吗?
请指点
...全文
239 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzh 2000-07-22
  • 打赏
  • 举报
回复
实际上处理这种问题时应该这样,客户端和服务端都加上自己定义的报文,在报文中加个包头包尾,这样就可以避免这个问题了,当接收到数据后,放入缓冲区,然后一个一个数据包的取出来进行分析。当把数据包取出后,在缓冲区中就删除此数据包,这样就不会有冲突了。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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