QQ是怎么实现通讯的-只为学习
2013-11-22 09:44
106 查看
QQ是怎么实现通讯的---转载的 不晓得是不是这样的
Q:我们上网一般使用的内网的IP地址,没有外网固IP,而UDP通信是需要IP地址的,那么既然不知道对方的IP地址,QQ是怎么实现两个点之间的通信的呢? A: 这个我最熟悉啦·UDP通信需要2个条件, 对方机器的IP地址,和接受消息的端口号. QQ 是怎么做到的呢? 其实很简单,我们下载的都是 QQ客户端, 腾讯保留着QQ服务端。并且这个服务端是24小时开启的, 那么我们好友之间是如何通信的呢? 这就要讲到QQ的通信模式了。 第一点:腾讯的QQ服务端必须开启,且服务器的IP地址是固定的,有固定的端口号接受客户端发送的消息。 第二点:客服端登录时,将自己的IP 和端口 发送给服务端,服务端记录,并将该IP和端口号发送给你所有的好友,群发消息告诉他们你已经上线。 第三点:好友间的聊天,其实这个就是点对点的了,不再通过服务器了。因为在步骤2 服务器已经将你的ip和端口发送给了你的好友,那么你的好友可以直接将消息发送到你的电脑。 第四点:如何知道好友已经离线呢?这是比较关键的,因为QQ使用的是UDP协议,UDP我们知道是不可靠连接,即只管发送消息,不管能否收到。 那么对方怎么知道你下线呢?在你下线时,会发送消息给服务器,服务器将会从上线列表里去除你的ID,并且群发消息告知你的好友。 QQ是一个基于TCP/UDP协议的通讯软件 |
相关文章推荐
- QQ是怎么实现通讯的
- QQ是怎么实现通讯的
- STM32F10x 学习笔记6(USART实现串口通讯 2)
- 怎么用Java实现QQ消息输入框这种能表情图片和文字混排的效果
- Android开发学习之QQ好友列表的实现
- Swing学习----------实现仿QQ注册功能
- STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
- Socket通讯 完成端口 怎么实现同时收发
- STM32F10x 学习笔记6(USART实现串口通讯 2)
- Android学习系列(2)--用ExpandableListView实现类似QQ好友列表
- 菜鸟必看css学习小技巧怎么实现三角形
- Android学习之仿QQ聊天界面的实现
- QT学习 第一章:基本对话框--实现QQ抽屉效果
- 4.如何实现用MTQQ通过服务器实现订阅者和发布者的通讯
- [转载]QQ通讯原理及QQ是怎么穿透内网的
- 用c#实现类似QQ的简单通讯程序
- STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
- 学习笔记 --- LINNUX 使用异步通讯机制实现按键驱动代码分析
- 【iOS学习笔记】QQ侧滑导航栏的实现
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)