谁来讲讲聊天通讯的工作原理,如QQ。。
最近想试试聊天程序,基本做完了(用D5的ServerSocket和ClientSocket做的,知道这个貌似淘汰了,但是不晓得哪些控件可以做),可以发发消息了。
现在我想知道,QQ的工作原理是怎么样的?
比如说,我发一个消息给同学,然后同学就可以看到消息。那么我发的这个消息是怎么发送的,是先发到Tencent的服务器上,然后再由Tencent转发给我同学的QQ上吗?
而这个ServerSocket是不是相当于 Tencent 的服务器?ClientSocket就是我本地的QQ?
求解答,越详细越好。
——————————————————————华丽分隔符——————————————————
还有,现在流行的Socket开发用哪些控件呢?
给出资料,谢谢!!!
[解决办法]
基本上就是你那样讲的
[解决办法]
Socket就是Socket,所有控件都源于他,如果你要写 Socket程序,建议直接使用最底层的 Socket 开发
[解决办法]
ICS,很好用的网络控件
一直在更新
[解决办法]
QQ的基本原理是这样的,
1、UDP协议。
2、将服务器放在公网中,客户端首先连接至服务端(也就是心跳),这样服务端就知道了所有客户端的IP及端口。
3、如客户端A想与客户端B通信,首先要要从服务端获取B的IP及Port,再与B进行穿关,B收到后返回A。
4,以上就实现公网下网关内的两台计算机所谓的穿关。
5、数据库服务,负责聊天记录的保存及离线文件的记录等等。
当然这只是最基本的模型,要想做好,还有很多的工作要做。
[解决办法]
一般,服务器只负责用户注册、登录及好友信息维护的
聊天是客户端直接对客户端的,因为服务器会把对方的客户端网络信息给你了
除非是2个客户端实在无法直接通信,才需要服务器保留、中转。这种对服务器的压力就大很多了
[解决办法]
彼此都在线,不等于就可以直接通信
当然,现在网络穿透的技术很成熟了,两边都在防火墙后面的通信应该也可以了,尤其udp
[解决办法]
ICS,已经出来是V8测试版,将来可以方便的移植到火猴多平台运行。
[解决办法]
[解决办法]
具体需要不需要中转,这个真不大清楚,不过你可以通过抓包来看一下,是不是都经过中转了
通过服务器来进行中转,这个技术难度也比点对点的通讯要低的多