上次已经回答过你了,“要求达到QQ文件的传送速度”和你使用什么协议没有关系。
QQ之所以快,是因为它的服务器多,在各种线路都有它的服务器节点。如果你做不到这一点,怎么写程序也没有用。

解决方案 »

  1.   

      QQ文件传输主要采用了UDP(User Data Protocol,用户数据报协议)协议传送数据,它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! 这种传输方式不可靠,如果传输中出现数据报的丢失,协议本身并不能作出任何的检测或提示.你了解一下这种协议的数据传输方式.
      如果对传输质量要求高的得采用TCP协议.这种方式下在正式收发数据前,必须和对方建立可靠的连接。
      

  2.   


    没听说过QQ传文件时使用udp。
      

  3.   

    引用了网上的资料,不必如此 
    http://blog.csdn.net/czbever/article/details/5386648
      

  4.   

    你所引用的文章里哪里说了“QQ文件传输主要采用了UDP(User Data Protocol,用户数据报协议)协议传送数据”呢?
      

  5.   


    没听说过QQ传文件时使用udp。
    引用了网上的资料,不必如此 ,或你给楼主解释一下
    http://blog.csdn.net/czbever/article/details/5386648 
      

  6.   


    没有什么可供你抄的代码。简单随便说两句这类设计开发。通常缓冲区要足够大。32K(字节)太小了,640K也不嫌大。其次实际上类似QQ这类软件,首先应该尝试直接点对点(从一个客户端访问另一个客户端)连接,也就是说你的客户端软件一定要具有一定的服务器特性。在QQ登录时应该会附带上客户端的内网信息、设备能力描述,因此两个客户端就可以先从服务器取得对方信息并且尝试先直接连,如果失败才通过服务器中转。传送文件其实应该先比较md5(或者别的签名),如果不一致才传送。甚至是,可以对目标文件进行分块的md5检验,仅仅传送签名不一致的那些区块,这样不但可以提高速度而且就可以非常简单做到断点续传。
      

  7.   

    当要发送文件给另一个客户时,可以先使用udp广播一个消息(表明目标数据),然后等待一两秒钟之后才开始使用通过服务器转发消息。等待一两秒钟时,如果对方在同一个网段内,可以直接访问当前客户端刚刚注册的TCP端口,然后发来确认消息,这时候就可以点对点地(顺序各区块)传文件了,而且不需要服务器中转。服务器转发消息其实也是比较容易的。这需要几十行代码去自己编写。但前提是你要做过基本地可以用于互联网产品的实用通讯程序。如果你没有自己参与过哪怕任何一个简单的实际产品,就来到处找现成的代码,这恐怕不现实。
      

  8.   


    没听说过QQ传文件时使用udp。
    虽然不清楚QQ是否使用UDP协议传输文件。但是值得说明的是,UDP协议并非“传输质量不高”或者“不可靠”而不能用于文件传输。实际上虽然UDP协议本身没有诸如确认包是否被接收,包的顺序是否和发送顺序一致,数据是否传输正确或者是否被篡改等等机制,但是这完全可以在应用层协议中实现。就好比TCP协议的“可靠”也不是与生俱来的,它的下层协议,比如IP,也没有这些机制,所谓可靠传输并不是说传输的方式本身可靠,而是能够在不可靠的环境中实现可靠。
      

  9.   


    不知道是不是我记错了,很久以前我用QQ发文件给好友,使用抓包工具获取好友ip地址查找好友ip,抓的发文件的包都是UDP的,可能是我记错了,我也不太确定!