2010-02-23 55 views
0

我正在使用套接字进行项目,实际上它运行在我们的环境中,并且没有出现故障 (局域网)。套接字编程在NAT网络中失败

当我尝试在其中采用NAT在他们的环境中的客户端上运行它 我的程序失败(即)无法通过我创建的客户端程序连接到服务器。

如何更改程序?有一个名为SocketOption的Enum能帮助解决我的问题吗?

我想从一个NAT的计算机在同一网络中传输到NAT的计算机

要设置赏金这个问题

+0

你应该修改你的消息的布局:P似乎嗨的消息被置为“代码”,失败?它如何失败,你会得到一个例外或某件事情? – Peter 2010-02-23 15:13:35

+3

客户端在哪里,服务器在哪里?从NAT内部网络连接到公共互联网上的服务器应该可以工作。除非设置了明确的端口转发,否则从公共互联网连接到NAT-ed网络内的服务器将无法工作。顺便说一句,套接字选项与此无关,它是让你得到的路由。 – 2010-02-23 15:24:26

+0

@NikolaiNFetissov我同意你提到的,但雅虎和Skype等如何做呢? – Smith 2012-03-08 22:58:56

回答

0

搜索了一段时间后,发现此信息

NAT不你通常可以在语法上进行控制。 (有UPNP,但我从未见过它工作。)如果您需要将客户端连接到位于NAT后面的服务器,则必须手动配置NAT设备(路由器)以执行端口转发。

链接: http://blogs.msdn.com/ncl/archive/2009/07/27/end-to-end-connectivity-with-nat-traversal-.aspx

+0

这可能是一个旧帖子,但在很多软件和视频游戏的情况下,它们是如何取而代之的。我在局域网上,我想知道如何通过局域网使服务器/客户端软件工作。 – Shaun 2012-01-03 13:39:13