0

我有一台通过动态 IP连接到互联网的计算机。因此,我无法通过TCP/IP连接到我编写的 C# 的 TCP/IP 服务器程序,但静态 IP 可以很好地工作。我决定在 DuckDNS.Org 和http://freedns.afraid.org/上使用IP 转发DNS 服务,以便能够通过以下网址 ping 我的机器:test.mooo.com

现在没关系,我可以通过这个网络子域 ping 我的计算机,但我的问题是:

如何修改最初只处理 IP 的客户端程序以连接到我的计算机,该计算机在特定端口上运行服务器以使用 Web 地址连接到我的计算机?

我试过了:

 client = new TcpClient("test.mooo.com", (int)Activity1.settingObj.port);

但它不起作用。提前致谢。我正在使用 C#,但我想这是一般的 TCP/IP 问题。

4

2 回答 2

1

Ping 仅验证 ICMP。那不是TCP。许多防火墙都设置为响应或通过 ICMP,即使不允许其他任何事情。

您的 PC 可能位于 NAT 防火墙/网关后面。如果您使用任何类型的 Linksys / Netgear 类型的 DSL 或有线路由器,您需要检查它是否支持端口转发。通常,您可以设置规则将端口转发到局域网上的单个私有 IP 地址。

还要检查 PC 本身的防火墙。确认 Windows 防火墙已禁用,或添加端口例外。

在极端情况下,一些 ISP 也会阻止传入连接,但通常情况并非如此。

于 2014-10-24T09:04:54.210 回答
0

经过多次努力,我有两种方法可以实现它。首先,当我们能够设置路由器设置为我们提供静态 IP 时,这在许多情况下是不可能的。第二种方法是使用为我们提供静态“专用”IP 的 VPN 服务。这些服务不是免费的,并且该设施按月收取订阅费。但是,它有效。我试过http://vpnstaticip.com/他们给了一个非常有限的试用期来测试 vpn。我已经测试过,结果很好,它们提供了静态 IP。尽管它很贵,但它对我有用,我需要找到使用它的充分理由。

于 2014-10-26T04:06:22.790 回答