A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朝哥 中级黑马   /  2012-6-14 22:53  /  1605 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们发给对方信息的时候,必须知道对方的端口号。
我的QQ在给你的QQ发信息时,我怎么直到你的端口了。我查过,不同的计算机QQ的端口不一定相同。
难道QQ会先扫描计算机,查到所安装QQ的端口,然后再发信息?
谁知道这其中的原理?

3 个回复

倒序浏览
QQ登录的时候,会有个获取好友的过程,这个过程就是用户的服务器会获取好友的远程地址和TCP端口,我们聊天的时候就可以直接连接另一个客户端,实现点对点通信。{:soso_e130:}我也希望有高手能解析的更清楚。
回复 使用道具 举报
首先,QQ是即可以使用TCP也可以使用UDP,但QQ默认是使用UDP,因为UDP消耗资源小。
实际上QQ在发送消息的时候是UDP打洞,而登陆的时候是使用用的HTTP遂道,因为登陆服务器其实就是一个HTTP服务器,只不过不是常用的那些。

了解了这些就说说QQ是如何通迅的。。
在TCP/IP协议中,唯一标识一个应用进程的是Socket,它通过网络层的IP地址和传输层的端口号来实现,对于同一个IP地址的内部网络,通过不同的端口号来标识不同的QQ进程;
当你登陆QQ服务器的时候,服务器会保留你的保留IP地址和端口号信息并在你的好友QQ进程中进行列表显示,然后两个QQ间就可以通迅了。。
不知道这样讲楼主是否有一些概念了?实际上关键是在登陆里。。服务器记录下你的QQ程序的端口号并且发送给了你的好友。。就是这样。。
回复 使用道具 举报
首先QQ程序里面肯定写好了服务器端的IP地址和端口号,你登录服务器后,服务器会记录你的IP地址和端口号。
同样你的好友登录QQ,服务器也会记录他的IP地址和端口号,当你给你的好友发消息时,是先发送到服务端,再由服务端转发给你的好友,所以你不需要事先知道你好友的IP地址和端口号!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马