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,并且群发消息告知你的好友。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzj0470

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值