用c#编写一P2P聊天工具

解决方案 »

  1.   

    我也正在进行这样的项目~C/S模式的,我也想问问,如何从客户端传数据到服务端之后,服务端能分析是传给谁的再把信息返回给指定ID?
      

  2.   

    兄弟你好,思路是这样的,客户端在登录服务器的后,服务器会发送在线的用户ID给客户端,也就是好友列表,好友列表里面有一个ID,即用户的ID,客户端在发送信息时,会将这个ID一同发送给服务器,服务器通过分析指令后,得好接收数据包的客户端,再将数据包转发给目标的客户端。这个是经过服务器中转的。
    如果你会打洞技术的话,在获取客户端的时候,有好友的客户端的IP地址,如果你要和对方聊天,就发指令给服务器,让服务器发送请求给目标客户端,然后目标客户端连接你的IP地址,你同时连接对方的IP地址,实现打通(如果有不对的地方,大家指出学习,谢谢)
      

  3.   

    用户在退出时,客户端会自动发送退出命令给服务器,服务器再将退出的结果发给其它的好友,这样其它的好友就会知道你下线了,他们的客户端就可以作出处理。
    如果你是异常退出,没有发送命令给服务器,服务器能检测出你的SOCKET异常,就能发送信息给你的好友列表,告诉他们你下线了。
    我的QQ290274500,欢迎大家交流学习,对SOCKET比较有兴趣