以前做过B/S开发。半个月前开始接触C/S。
大家来说说 客户端、服务器端、web端原理。让我们相互学习学习。我现在已经用socket做了个简单的通信Demo
原理大概是这样的:客户端请求登录-->服务器端接收登录信息-->服务器端返回登录成功消息-->客户端接收消息并进入聊天室-->客户端选择一个客户并发送通信内容-->服务器接收并转发给客户。我有如下问题:
1.如果A用户向B用户发送消息,如何不经过服务器直接发送,其原理是什么?
(我的想法是:A用户在选择B用户时触发一个事件向服务器端发送数据,服务器把B用户的IP和端口号返回给A用户,然后A直接和B链接)
2.类似QQ这种有客户端、服务器端、web端,它们直接是怎么互交的?原理是什么?
(我的想法是:难道服务器端和Web端公用数据库,那这样还要服务器端干什么)
3.如果web端即是服务器端容易实现么?

解决方案 »

  1.   

    当A用户登陆的时候,与服务器相连,之后告诉服务器,我在监听什么端口,这个时候B用户登陆的时候,与A情况相同,当用户B要向A发送消息的时候,通过服务器,知道了A现在在监听什么端口什么地址,然后B直接连接过去,就可以直接发送信息,而不需要服务器中转
      

  2.   

    A->服务器 (服务器记录A的IP地址,返回其他人的IP地址)->A获取其他人的IP地址这时A想与其他人聊天 直接通过对方的IP聊(UDP)