C#聊天系统关于客户端和客户端通信问题 客户端A和服务器连接 客户端B也是 现在想用A和B通话 该怎么做 给点代码提示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AB都和服务器通信,服务器转发A的数据给B,把B的数据给A A—Server—B不管怎么着,都得经过S不是? 无非两个方式:第一、保险的方式是通过服务器转发。第二、NAT打洞,直接P2P。 我自己写过一个,没有经过服务器转发,也没有用到事件回调(委托),客户端与客户端可以进行通信;我在这给你说说我的思路,完整的代码我应经上传到CSDN,你可以去下载,有什么疑问可以按照里面的联系方式和我联系!具体的思路如下:首先,你要明白客户端既是客户端又是服务器,当客户端与服务器(真正的服务器)进行通信的时候,客户端就是客户端,当客户端与客户端进行通信时,一方的客户端就作为服务器了;当客户端与客户端进行通信时,就需要知道对方客户端的IP地址和其在监听的端口号,我是这样解决的,每个客户端在登录到服务器时,服务器提取其IP地址,客户端发送自己将要监听的端口号给服务器,让服务器记录下来,注意是将要监听的端口号;当客户端与另一个客户端要进行通信时,先发送消息给服务器,查看对方是否在线,如果在线,就把对方的IP地址和端口号发回来,这样,这个客户端就可以向另一个客户端发起连接,此时,另外一个客户端就是服务器了。客户端需要创建一个线程用来监听来自其他客户端的连接,该线程中的套接字的端口号就是客户端在登录时发给服务器的端口号。我不知道我有没有说清楚,如果你还不明白,请说出来,如果我懂会给你解答! 忘了说了,我用的是TCP,所以客户端与客户端连接时就需要对方的IP地址和端口号。我写的那个是模仿腾讯QQ,有树形结构! 写简单一点,服务器做消息中转。Client A <--TCP--> Server Client B <--TCP--> ServerClient A --Send--> ServerServer --Send--> Client B我只做批量转发,就是给连接服务端的客户端都转发一次。如果是针对性的发送的话,需要从TCP列表中筛选出来。 try 里面怎么写,可以直接跳到相应的 catch c#:函数调用问题。 C#里,怎么把检索出来的DS绑给COMBOBOX,就剩十分了 有趣的难题,请帮顶 在服务器端不断的产生新图片,如何在WEB页面上刷新显示??? foreach 怎样使用? 求助压缩算法在C#中的应用 如何利用oledb删除 excel工作簿中的指定表 同一账号同一时间只能在一个客户端登录,如何实现? 另一个关于dataRelation的问题? 报表的数据源的SQL语句不能指定多个数据表,为什么呀 为何总是提示“使用未赋值的局部变量”呢?我已经赋值了呀?
无非两个方式:第一、保险的方式是通过服务器转发。
第二、NAT打洞,直接P2P。
当客户端与客户端进行通信时,就需要知道对方客户端的IP地址和其在监听的端口号,我是这样解决的,每个客户端在登录到服务器时,服务器提取其IP地址,客户端发送自己将要监听的端口号给服务器,让服务器记录下来,注意是将要监听的端口号;当客户端与另一个客户端要进行通信时,先发送消息给服务器,查看对方是否在线,如果在线,就把对方的IP地址和端口号发回来,这样,这个客户端就可以向另一个客户端发起连接,此时,另外一个客户端就是服务器了。客户端需要创建一个线程用来监听来自其他客户端的连接,该线程中的套接字的端口号就是客户端在登录时发给服务器的端口号。我不知道我有没有说清楚,如果你还不明白,请说出来,如果我懂会给你解答!
Client A <--TCP--> Server
Client B <--TCP--> ServerClient A --Send--> Server
Server --Send--> Client B我只做批量转发,就是给连接服务端的客户端都转发一次。如果是针对性的发送的话,需要从TCP列表中筛选出来。