TCP在干嘛~ 有个项目用了TCP实时传输数据(频率很快,100ms左右发一次)。我在接收端发现有时数据包会有一些无意义的数据,我只能丢弃。我想问问,这些数据包怎么会出现?如果服务端发送了这些无意义的数据,如何确认位置呢?不好调试啊~希望有经验的朋友告诉下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都检查看看。tcp不会给你加数据的。 检查发送buffer大小和实际数据大小是否一致 tcp需要做拼包处理,是否拼包有问题?比如客户端1发送12345,客户端2发送了9988。恰巧客户端1和客户端2发送的包都被拆分成了多个包,如客户端端一被拆成了123 4 5 三个包,客户端2被拆成了99 88两个包,这样很有可能收包成了如下顺序 123 99 4 88 5.tcp是不会乱产生数据的,调网络关键一点不要把异常问题归咎到协议上,问题肯定是出在逻辑上。 tcp会发送心跳包来维护链路的 tcp最重要的就是一定要接和发对应发一次收一次你的问题还有可能是发送的时候你本地用的buffer没有每次都清空,另外send返回的长度一定要加判断 TCP是流协议,处理不好有粘包现象,你的问题可能是由于粘包引起的,你可以适当的降低发送的速度或者每次发送包的大小试试 但客户端得缓冲区自己可以定义的,你每次接受固定的大小再加以判断 不就可以排除益处的问题吗? 你的服务器端口是不是设置除了客户端 还有其他程序使用啊 ,tcp是不会产生数据的啊? 你客户端发送数据的时候放入缓冲区 会不会除问题了啊 请问一下谁能讲解一下shell32的几个函数 想学VC,不知道“钱途”怎么样? 游戏开发群:19321386 怎么在字符串(mfc的CString里) 滤掉回车? 如何在SDK中指定位置(x,y)生成一个弹出式菜单? 从CFontDialog 继承一个MyFontDialog为什么没有了DoDataExchange? VC高手:这两种表达方式为什么效果不同? nanex.rar :用何文件打开?rar是何文件后缀? 请教CA高手 为什么没人回答我的问题呢? 程序启动时如何获取上次保留的路径? 怎样获取互联网上指定HTTP地址处的网页或数据文件,返回文件内容
比如客户端1发送12345,客户端2发送了9988。
恰巧客户端1和客户端2发送的包都被拆分成了多个包,如客户端端一被拆成了123 4 5 三个包,客户端2被拆成了99 88两个包,这样很有可能收包成了如下顺序 123 99 4 88 5.tcp是不会乱产生数据的,调网络关键一点不要把异常问题归咎到协议上,问题肯定是出在逻辑上。
发一次收一次
你的问题还有可能是发送的时候你本地用的buffer没有每次都清空,另外send返回的长度一定要加判断
你的服务器端口是不是设置除了客户端 还有其他程序使用啊 ,tcp是不会产生数据的啊? 你客户端发送数据的时候放入缓冲区 会不会除问题了啊