怎么解决丢包的问题 TCP才不丢包UDP多半要丢,因为UDP的包超时一般就没用了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果服务器也是你做的,当服务器收到一个宝的时候,发回一个ack.....如果在一定时间内没有收到ack,则重新发.........oicq应该就是这么做的.....不过这是在模拟tcp了,呵呵,不如直接用tcp.... 我用的是TCP啊,没有用UDP包啊,确实按理说TCP应该不丢包啊??? 网络永远是不可靠的,即使是TCP也会丢包,应该是重发,这样自己可以控制住,最好服务器端自己写,每发一个包,就握手一次。 谁有FTP服务器端和客户端的源码 CSocket的例子,该例子不丢包,长度也是1024啊,而且速度比我的快。速度问题也可能是和我测试时每来一个包显示一些信息有关 TCP/IP不可能丢包,而应该是你在接收是出了问题,可能你接收是不管要的包的长度或者接收缓冲中数据的长度,收下来就当作一个包,这时可能已经有另一个包的一部分已经收到如果把它当成一个无效包则当然就要丢包了,你应该用个链表保存下来,把不完整的包保留下来,下次完整了再处理。只要你不发无效包则不可能出现无效包,不要扔掉,切记! tcp/ip真的不可能丢包吗????? TCP是可靠的连接,在网络层里,数据是有序、无重复的发送和接收,所以数据都会从发送方安全地到达接收方(这大家都是知道的吧!)。出现所谓“丢包”的现象可能是在缓存里的数据没来得及处理后来数据又来那么上一次未处理的数据和这一次来的数据就要一起取,如上一次的数据是1024字节(未取),这一次又是1024字节,那么,在产生Receive事件的时候就要一次取2048个字节,如果只取了1024个字节的话后来的数据计算机以为你不要就会把它丢掉了。如是用窗口消息异步形接收数据(CAsyncSocket就是这样的一种方式)如果,数据包来得比较频繁的话就好用Winsock 2的完成例程来做,这会有比较好的效率。 多谢各位的捧场,我觉得JJONY的说法是正确的,等我试一下以后,我再给分! 问一个白痴问题吧 [注册表]已知值名,如何获取值的数据类型? 这种程序怎么写比较好,主要是框架怎么搭?根据协议来构造数据 做一个医院管理系统大概多少钱?大家估估价! 听说MSDN中总结过MFC中各个句柄的获取方法,不知道是在哪里找到的? 这种内存怎么释放,谢谢 怎样通过filter的友好名字找到它的CLSID? 可否在VC中调用汇编编写的函数 讨论一个注入hook完成后的清理问题 VS2013MFC基于TCP/IP通讯的心跳功能的实现 关于CRichedit的问题 如何在编辑框中实现类似网页中的超级连结效果?
如果在一定时间内没有收到ack,则重新发.........
oicq应该就是这么做的.....不过这是在模拟tcp了,呵呵,不如直接用tcp....
可能你接收是不管要的包的长度或者接收缓冲中数据的长度,收下来就当作一个包,
这时可能已经有另一个包的一部分已经收到如果把它当成一个无效包则当然就要丢包了,
你应该用个链表保存下来,把不完整的包保留下来,下次完整了再处理。
只要你不发无效包则不可能出现无效包,不要扔掉,切记!
出现所谓“丢包”的现象可能是在缓存里的数据没来得及处理后来数据又来那么上一次未处理的数据和这一次来的数据就要一起取,如上一次的数据是1024字节(未取),这一次又是1024字节,那么,在产生Receive事件的时候就要一次取2048个字节,如果只取了1024个字节的话后来的数据计算机以为你不要就会把它丢掉了。如是用窗口消息异步形接收数据(CAsyncSocket就是这样的一种方式)
如果,数据包来得比较频繁的话就好用Winsock 2的完成例程来做,这会有比较好的效率。