求QQ文件传输实现方式 上次已经回答过你了,“要求达到QQ文件的传送速度”和你使用什么协议没有关系。QQ之所以快,是因为它的服务器多,在各种线路都有它的服务器节点。如果你做不到这一点,怎么写程序也没有用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 QQ文件传输主要采用了UDP(User Data Protocol,用户数据报协议)协议传送数据,它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! 这种传输方式不可靠,如果传输中出现数据报的丢失,协议本身并不能作出任何的检测或提示.你了解一下这种协议的数据传输方式. 如果对传输质量要求高的得采用TCP协议.这种方式下在正式收发数据前,必须和对方建立可靠的连接。 没听说过QQ传文件时使用udp。 引用了网上的资料,不必如此 http://blog.csdn.net/czbever/article/details/5386648 你所引用的文章里哪里说了“QQ文件传输主要采用了UDP(User Data Protocol,用户数据报协议)协议传送数据”呢? 没听说过QQ传文件时使用udp。引用了网上的资料,不必如此 ,或你给楼主解释一下http://blog.csdn.net/czbever/article/details/5386648 没有什么可供你抄的代码。简单随便说两句这类设计开发。通常缓冲区要足够大。32K(字节)太小了,640K也不嫌大。其次实际上类似QQ这类软件,首先应该尝试直接点对点(从一个客户端访问另一个客户端)连接,也就是说你的客户端软件一定要具有一定的服务器特性。在QQ登录时应该会附带上客户端的内网信息、设备能力描述,因此两个客户端就可以先从服务器取得对方信息并且尝试先直接连,如果失败才通过服务器中转。传送文件其实应该先比较md5(或者别的签名),如果不一致才传送。甚至是,可以对目标文件进行分块的md5检验,仅仅传送签名不一致的那些区块,这样不但可以提高速度而且就可以非常简单做到断点续传。 当要发送文件给另一个客户时,可以先使用udp广播一个消息(表明目标数据),然后等待一两秒钟之后才开始使用通过服务器转发消息。等待一两秒钟时,如果对方在同一个网段内,可以直接访问当前客户端刚刚注册的TCP端口,然后发来确认消息,这时候就可以点对点地(顺序各区块)传文件了,而且不需要服务器中转。服务器转发消息其实也是比较容易的。这需要几十行代码去自己编写。但前提是你要做过基本地可以用于互联网产品的实用通讯程序。如果你没有自己参与过哪怕任何一个简单的实际产品,就来到处找现成的代码,这恐怕不现实。 没听说过QQ传文件时使用udp。虽然不清楚QQ是否使用UDP协议传输文件。但是值得说明的是,UDP协议并非“传输质量不高”或者“不可靠”而不能用于文件传输。实际上虽然UDP协议本身没有诸如确认包是否被接收,包的顺序是否和发送顺序一致,数据是否传输正确或者是否被篡改等等机制,但是这完全可以在应用层协议中实现。就好比TCP协议的“可靠”也不是与生俱来的,它的下层协议,比如IP,也没有这些机制,所谓可靠传输并不是说传输的方式本身可靠,而是能够在不可靠的环境中实现可靠。 不知道是不是我记错了,很久以前我用QQ发文件给好友,使用抓包工具获取好友ip地址查找好友ip,抓的发文件的包都是UDP的,可能是我记错了,我也不太确定! 怎么控制父窗体上的控件 combobox的DropDownStyle属性设置为DropDownList,控制初始显示的属性值是? 如何DataSet数据集里的列添加到ListView控件里去呢? c#关闭最小化到托盘区和tabcontrol控件 在VS2005下写的程序,在WIN98系统上能正常运行吗? 请文MDI子窗体怎么写? 如何在C#中调用多参数(全部是Input,两个以上)的存储过程?急!! 我是拉控件拼sql狂热爱好者,怎么办? 关于wpf安装后卸载问题。 程序的安全 c#在用udp传送数据时,丢包后怎么才能重传丢失的包 请教,在WPF中能加入百度地图API吗?
如果对传输质量要求高的得采用TCP协议.这种方式下在正式收发数据前,必须和对方建立可靠的连接。
没听说过QQ传文件时使用udp。
http://blog.csdn.net/czbever/article/details/5386648
没听说过QQ传文件时使用udp。
引用了网上的资料,不必如此 ,或你给楼主解释一下
http://blog.csdn.net/czbever/article/details/5386648
没有什么可供你抄的代码。简单随便说两句这类设计开发。通常缓冲区要足够大。32K(字节)太小了,640K也不嫌大。其次实际上类似QQ这类软件,首先应该尝试直接点对点(从一个客户端访问另一个客户端)连接,也就是说你的客户端软件一定要具有一定的服务器特性。在QQ登录时应该会附带上客户端的内网信息、设备能力描述,因此两个客户端就可以先从服务器取得对方信息并且尝试先直接连,如果失败才通过服务器中转。传送文件其实应该先比较md5(或者别的签名),如果不一致才传送。甚至是,可以对目标文件进行分块的md5检验,仅仅传送签名不一致的那些区块,这样不但可以提高速度而且就可以非常简单做到断点续传。
没听说过QQ传文件时使用udp。
虽然不清楚QQ是否使用UDP协议传输文件。但是值得说明的是,UDP协议并非“传输质量不高”或者“不可靠”而不能用于文件传输。实际上虽然UDP协议本身没有诸如确认包是否被接收,包的顺序是否和发送顺序一致,数据是否传输正确或者是否被篡改等等机制,但是这完全可以在应用层协议中实现。就好比TCP协议的“可靠”也不是与生俱来的,它的下层协议,比如IP,也没有这些机制,所谓可靠传输并不是说传输的方式本身可靠,而是能够在不可靠的环境中实现可靠。
不知道是不是我记错了,很久以前我用QQ发文件给好友,使用抓包工具获取好友ip地址查找好友ip,抓的发文件的包都是UDP的,可能是我记错了,我也不太确定!