C# tcpclient / 服务器到外部 ip 不起作用
C# tcpclient / server to external ip doesnt work
所以我有一个正在交换数据的 server/client 模型。这基本上是来自服务器的网络部分:
服务器:
...
listener = new TcpListener(System.Net.IPAddress.Any, 4711);
listener.Start();
while(true){
TcpClient c = listener.AcceptTcpClient();
}
...
客户:
...
TcpClient c = new TcpClient("myip", 4711);
StreamReader inStream = new StreamReader(c.GetStream());
...
如果我通过我的客户端连接到 "localhost",一切正常,我的内部 ipv4 地址也是如此。我认为这也适用于我的外部 ip,不知何故,我并不总是收到服务器拒绝连接的消息。
我的路由器是 FRITZ!Box 6490 电缆 (kdg)。我在它和我的防火墙中为 4711 启用了端口转发。当我通过 http://www.yougetsignal.com/tools/open-ports/ 检查 4711 时,它说我的端口已关闭。我想这就是问题所在?还是我做错了什么?我通常给我的客户外部 ipv4 地址不起作用,如果我给我外部 ipv6 它确实有效,但只对我网络中的人(内部和外部 ipv6 对我来说是一样的,我认为这可能就是这样).
我的 ipv4 是 运行 在 DS-Lite-Tunnle 上,这是否意味着有人只能通过 ipv6 连接到我的计算机?
此外,我了解到 ipv6 会导致端口转发出现问题,因此我在计算机上禁用了 ipv6,但这也不起作用。
有什么我可以尝试的想法吗?
我正在与我的路由器提供商交谈,他们告诉我对此我无能为力。我可以改变这一点的唯一方法是打电话给我的 ISP 并告诉他们我想要回 ipv4。使用 DS-Lite-Tunnel 无法从外部打开端口/连接到我的计算机(这就是他们告诉我的)。
所以我有一个正在交换数据的 server/client 模型。这基本上是来自服务器的网络部分:
服务器:
...
listener = new TcpListener(System.Net.IPAddress.Any, 4711);
listener.Start();
while(true){
TcpClient c = listener.AcceptTcpClient();
}
...
客户:
...
TcpClient c = new TcpClient("myip", 4711);
StreamReader inStream = new StreamReader(c.GetStream());
...
如果我通过我的客户端连接到 "localhost",一切正常,我的内部 ipv4 地址也是如此。我认为这也适用于我的外部 ip,不知何故,我并不总是收到服务器拒绝连接的消息。
我的路由器是 FRITZ!Box 6490 电缆 (kdg)。我在它和我的防火墙中为 4711 启用了端口转发。当我通过 http://www.yougetsignal.com/tools/open-ports/ 检查 4711 时,它说我的端口已关闭。我想这就是问题所在?还是我做错了什么?我通常给我的客户外部 ipv4 地址不起作用,如果我给我外部 ipv6 它确实有效,但只对我网络中的人(内部和外部 ipv6 对我来说是一样的,我认为这可能就是这样).
我的 ipv4 是 运行 在 DS-Lite-Tunnle 上,这是否意味着有人只能通过 ipv6 连接到我的计算机?
此外,我了解到 ipv6 会导致端口转发出现问题,因此我在计算机上禁用了 ipv6,但这也不起作用。
有什么我可以尝试的想法吗?
我正在与我的路由器提供商交谈,他们告诉我对此我无能为力。我可以改变这一点的唯一方法是打电话给我的 ISP 并告诉他们我想要回 ipv4。使用 DS-Lite-Tunnel 无法从外部打开端口/连接到我的计算机(这就是他们告诉我的)。