900126 2004年07月04日
UDP在新版QQ上的的应用[原创]
新版QQ有一些变动,比如在发送文件或进行语音视频连接时,都提示“已经建立了UDP连接”,那么什么是UDP连接呢?
我们知道,进行TCP通讯时,先要建立连接,而UDP是一种无状态交换,无所谓连接。需要发送时,直接给出目标地址和端口就可以。那么这里的“连接”是什么呢?
其实这里是一种逻辑上的连接。UDP通讯与TCP通讯的一个重要区别就是,TCP连接的结果是实现了一个通讯管道,所谓管道,包含一个含义,就是先进先出,先发出的信息必然先到达,因此对发送的数据可以保持“序”,有序的数据流。而UDP则没有这个条件,如果网络环境比较复杂,根本不能指望先发出的信息会先到达。因而,要实现例如语音和视频交换,就必须解决数据包顺序问题。在很多情况下,使用TCP而不使用UDP往往也是这个原因。
那么建立“UDP连接”是什么意思呢?其实是建立一种逻辑(用户协议)上的过程准备。发送方发送一种特定标识的数据包,当接收方收到时,就排列在接受器里,如果包是顺序的,就把已经到达的部分(一个或多个包)提交“数据到达”,如果顺序不正确,就返回信号,申请未到达的包,如果包的号码重复,就放弃后来的数据包,以此实现像TCP一样的“管道效应”。
使用UDP的原因,当然是为了对付上百万的在线用户(用TCP是不可能的)。而更广泛使用UDP(原来是使用TCP实现视频和文件交换)则是为了通过各种网关。
说这些干吗呢?那是因为最近P2P模式的应用越来越受到重视,而在现有网络环境下,只有UDP最方便和保险。很多人在使用UDP过程中,经常由于某些原因而拿TCP打补丁,其实,用好UDP可以解决大多数通讯应用。
还有一个,QQ的“屏幕拷贝”是如何实现的呢?方法很简单,复制当前屏幕,并用一个窗体全屏显示,你所进行的区域选择,是在那个窗口上(好象真在WINDOWS上),当你双击确认时,双击的是QQ的图片窗口,在QQ取得所有需要的信息时,那个窗口关闭,恢复实际的屏幕。
...全文
365 点赞 收藏 15
写回复
15 条回复

还没有回复,快来抢沙发~

发动态
发帖子
网络编程
创建于2007-09-28

1145

社区成员

1.8w+

社区内容

VB 网络编程
社区公告
暂无公告