To cellblue(cellblue): 如兄台所说,那么QQ 服务器其实只是帮助QQ A 与QQ B 保存一个双方的通讯地址,当QQ A 要发送消息给QQ B 的时候就从服务器上取得QQ B 的地址,然后往这个地址发送消息,反之也是? 那请问兄台,服务器如何判断这个地址仍然正确,就是如何判断QQ A 一直在线?谢谢
To windinwing(潇笑): 那是否就说明OICQ 的工作方式是,QQ A 与QQ B 是通过服务器通讯,A 发送信息给B 需要先发到服务器,再有服务器发送给B ,而不是A 和B 直接通讯的。
必须提供 IP 与 端口号了这样做,就必须有一个动态的数据库,或者数据表,当有人上线就需要通知所有好友,并且通知他们这个好友的 ip 以及端口号,有了这些信息就可以直接通过Socket 通讯,或者通过服务器转发
反之亦然以前,QQ隐身的时候数据包都是往服务器走的,现在好像改善了,只有少量的数据往服务器走
如兄台所说,那么QQ 服务器其实只是帮助QQ A 与QQ B 保存一个双方的通讯地址,当QQ A 要发送消息给QQ B 的时候就从服务器上取得QQ B 的地址,然后往这个地址发送消息,反之也是?
那请问兄台,服务器如何判断这个地址仍然正确,就是如何判断QQ A 一直在线?谢谢
那是否就说明OICQ 的工作方式是,QQ A 与QQ B 是通过服务器通讯,A 发送信息给B 需要先发到服务器,再有服务器发送给B ,而不是A 和B 直接通讯的。
然后上线时载好友列表,每隔一定时间和服务器对比一次,来刷新列表。 发送消息
时应该是A真接发给B,当到达一定时间没有发送成功时就转交给服务器转发
谢谢大家