客户端A和服务器连接 客户端B也是 现在想用A和B通话 该怎么做 给点代码提示

解决方案 »

  1.   

    AB都和服务器通信,服务器转发A的数据给B,把B的数据给A
      

  2.   

    A—Server—B不管怎么着,都得经过S不是?
      

  3.   


    无非两个方式:第一、保险的方式是通过服务器转发。
    第二、NAT打洞,直接P2P。
      

  4.   

    我自己写过一个,没有经过服务器转发,也没有用到事件回调(委托),客户端与客户端可以进行通信;我在这给你说说我的思路,完整的代码我应经上传到CSDN,你可以去下载,有什么疑问可以按照里面的联系方式和我联系!具体的思路如下:首先,你要明白客户端既是客户端又是服务器,当客户端与服务器(真正的服务器)进行通信的时候,客户端就是客户端,当客户端与客户端进行通信时,一方的客户端就作为服务器了;
    当客户端与客户端进行通信时,就需要知道对方客户端的IP地址和其在监听的端口号,我是这样解决的,每个客户端在登录到服务器时,服务器提取其IP地址,客户端发送自己将要监听的端口号给服务器,让服务器记录下来,注意是将要监听的端口号;当客户端与另一个客户端要进行通信时,先发送消息给服务器,查看对方是否在线,如果在线,就把对方的IP地址和端口号发回来,这样,这个客户端就可以向另一个客户端发起连接,此时,另外一个客户端就是服务器了。客户端需要创建一个线程用来监听来自其他客户端的连接,该线程中的套接字的端口号就是客户端在登录时发给服务器的端口号。我不知道我有没有说清楚,如果你还不明白,请说出来,如果我懂会给你解答!
      

  5.   

    忘了说了,我用的是TCP,所以客户端与客户端连接时就需要对方的IP地址和端口号。我写的那个是模仿腾讯QQ,有树形结构!
      

  6.   

    写简单一点,服务器做消息中转。
    Client A <--TCP--> Server 
    Client B <--TCP--> ServerClient A --Send--> Server
    Server --Send--> Client B我只做批量转发,就是给连接服务端的客户端都转发一次。如果是针对性的发送的话,需要从TCP列表中筛选出来。