日期:2014-05-17  浏览次数:20980 次

C# udp 互联网聊天问题
如题,例如 我现在有A,B,C,D,E,F这些计算机和一台服务器,服务器连在公网上,具有静态IP,A,B,C,D,E,F这些事客户电脑,有可能连在局域网内,IP是动态的,而且没有端口映射之类的操作,还有可能所在的网络使用了NAT转发,那A,B,C,D,E,F之间怎么使用UDP协议进行聊天,例如A和B聊天,A先把信息发送到服务器,然后服务器怎么把信息发送到B呢?(B在局域网内,没有做端口映射,就是根据B所在局域网的公网IP不一定能找到B),最后贴上示例代码给小弟参考一下
互联网 聊天工具 C# UDP

------解决方案--------------------
在服务中使用udp,这其实任何一个程序都会,只要你的程序将udp和tcp的命令处理(以及协议)共用同一套,其实任何一个消息都可以考虑随时切换它们。只不过,那些消息超过60k的消息不能使用udp,那些在超时没有收到应答后不敢丢弃回掉处理过程的消息不能使用udp。实际上任何一个通讯程序都可以混合使用udp和tcp同时服务于同一套业务逻辑。

有些人一劲宣扬QQ使用udp就多么多么先进了,我看80%以上都是夸张的,这对腾讯公司的公司形象有利。
------解决方案--------------------
一开始要先全部连接到服务器进行登录吧,然后服务器再下发登录的机器给所有客户端,然后客户端就可以知道其他机器的ip了