套接字可以在本地连接,但即使连接也不能远程连接

时间:2014-05-22 18:50:02

标签: c# sockets

2天前它工作正常,但它停止工作,看看

服务器

 IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 50000);
        Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            listener.Bind(endpoint);
            listener.Listen(100);

客户:( 192.168.0.2正常工作,因为它是本地的,但是当我尝试使用我的IP" www.whatismyip.com"我无法连接时)

 IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("192.168.0.2"), 50000);

        cliente = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        cliente.Connect(ipEndPoint);

我的防火墙被禁用,我在50000

进行了端口转发

1 个答案:

答案 0 :(得分:0)

好消息和坏消息。好消息是,它可能不是你。坏消息是除了改变你想要做的事情之外,你可能无能为力。可能性是您的连接请求被丢弃在两个地方之一 - 通过您的(DSL,电缆等)调制解调器或您的ISP。当您获得外部IP地址然后尝试连接回来时,调制解调器会感到困惑,因为它似乎试图向自己发送内容,而不是通过环回接口,因此丢弃TCP SYN数据包。或者,您的ISP会让您支持某种NAT,您认为您的外部IP地址与您的ISP路由器认为的(区域)地址不符。这也令人困惑,数据包被丢弃或转发到您的地址的全球版本。也许它到了那里,也许不是。无论哪种方式,连接都在以太网中丢失。

你说2天前你的朋友使用了相同的代码。显然,他的互联网连接与你的互联网有所不同。