日期:2014-05-18  浏览次数:20824 次

c#做的网络通信程序(要能在外网通信的)
我最近做了一个网络通信的程序(用的是udp协议),在局域网内通信没有问题,但是公司要求要能在外网上通信。在下不才,对网络编程不是很了解,不明白怎么改进才能实现在外网上通信,望高手们指点一二。感激不尽!!!
在线等。。。


------解决方案--------------------
端口映射吧
------解决方案--------------------
1.
现在不明白的是用什么标识一台机子?
-------------------------
IP

2.
发送信息的时候用哪个ip地址?外网ip?内网ip?
------------------------
客戶端連接服務器時外網IP,發送消息使用的是通過Socket獲取到對方的IP地址。
------解决方案--------------------
1. 你的应用应该是C/S结构,这里服务器一定要有固定IP或域名。
2. 每个Client连接Server时会开一个端口,你应该保持client端口(好像是代理服务器的IP)始终为打开状态。
3. Server上建立IP及端口与每个Client的映射关系然后共享这个列表。

另外有一个最简单的仿B/S方式(但低效的方法)。
每个client不断向Server发请求看有没有自己的消息或者向另一个client发消息。
------解决方案--------------------
udp中不是有个napt的问题嘛,你在进行外网通讯的时候内网地址会自动转换成外网地址加一个port,建议看看udp打洞
------解决方案--------------------
难道是内网和外网通信?
那要看服务器是在外网还是内网.
如果服务器在内网,这个就涉及到NAT穿透了.是个很麻烦的事情.呵呵.
不过如果服务器的路由你能控制的话,让路由开个端口映射好了.
------解决方案--------------------
不懂,帮顶帮顶!
------解决方案--------------------
如果是广播方式发送信息,那么程序要重新写过。
否则直接配置路由,端口,IP等信息就可以了。
------解决方案--------------------
up
------解决方案--------------------
组播怎么出局域网? 貌似需要交换机支持的吧。不适很了解组播

建议还是换一个通信方式。
------解决方案--------------------
转发?
------解决方案--------------------