TCP才不丢包
UDP多半要丢,因为UDP的包超时一般就没用了

解决方案 »

  1.   

    如果服务器也是你做的,当服务器收到一个宝的时候,发回一个ack.....
    如果在一定时间内没有收到ack,则重新发.........
    oicq应该就是这么做的.....不过这是在模拟tcp了,呵呵,不如直接用tcp....
      

  2.   

    我用的是TCP啊,没有用UDP包啊,确实按理说TCP应该不丢包啊???
      

  3.   

    网络永远是不可靠的,即使是TCP也会丢包,应该是重发,这样自己可以控制住,最好服务器端自己写,每发一个包,就握手一次。
      

  4.   

    谁有FTP服务器端和客户端的源码
      

  5.   

    CSocket的例子,该例子不丢包,长度也是1024啊,而且速度比我的快。速度问题也可能是和我测试时每来一个包显示一些信息有关
      

  6.   

    TCP/IP不可能丢包,而应该是你在接收是出了问题,
    可能你接收是不管要的包的长度或者接收缓冲中数据的长度,收下来就当作一个包,
    这时可能已经有另一个包的一部分已经收到如果把它当成一个无效包则当然就要丢包了,
    你应该用个链表保存下来,把不完整的包保留下来,下次完整了再处理。
    只要你不发无效包则不可能出现无效包,不要扔掉,切记!
      

  7.   

    tcp/ip真的不可能丢包吗?????
      

  8.   

    TCP是可靠的连接,在网络层里,数据是有序、无重复的发送和接收,所以数据都会从发送方安全地到达接收方(这大家都是知道的吧!)。
    出现所谓“丢包”的现象可能是在缓存里的数据没来得及处理后来数据又来那么上一次未处理的数据和这一次来的数据就要一起取,如上一次的数据是1024字节(未取),这一次又是1024字节,那么,在产生Receive事件的时候就要一次取2048个字节,如果只取了1024个字节的话后来的数据计算机以为你不要就会把它丢掉了。如是用窗口消息异步形接收数据(CAsyncSocket就是这样的一种方式)
    如果,数据包来得比较频繁的话就好用Winsock 2的完成例程来做,这会有比较好的效率。
      

  9.   

    多谢各位的捧场,我觉得JJONY的说法是正确的,等我试一下以后,我再给分!