我无法通过互联网连接到我的服务器

时间:2008-10-12 17:30:54

标签: c# networking sockets

我可以在本地计算机上运行服务器并在同一台计算机上连接它,但是当我尝试通过互联网从另一台计算机连接到它时,我的服务器上没有活动的迹象,也没有响应从计算机上的服务器我正在测试它。我试过XP和Vista,关闭防火墙,打开端口,以管理员身份运行;什么都没有用。 :(

以下是我用来接受传入连接的代码:


int port = 3326;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                TcpListener listener = new TcpListener(new IPEndPoint(IPAddress.Any, port));
                listener.Start();
                Console.WriteLine("Server established\nListening on Port: {0}\n", port);
                while (true)
                {
                    socket = listener.AcceptSocket();
                    socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, outime);
                    socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
                    socket.DontFragment = true;
                    NewConnection pxy = new NewConnection(socket);
                    Thread client = new Thread(new ThreadStart(pxy.Start));
                    client.IsBackground = true;
                    client.Start();
                }
}

4 个答案:

答案 0 :(得分:8)

我认为问题出在您的路由器上,而不是您的计算机上。数据包来自Internet时,应将其路由到特定服务器。您必须配置路由器以将端口3326上的流量重定向到您的服务器。

答案 1 :(得分:3)

你可能有一些东西阻止了更高的连接。尝试从LAN上的其他主机进行连接。如果你能做到这一点,那么操作系统本身就不会对连接进行防火墙处理。

如果您或您的ISP运行NAT路由器,那么您的计算机可能没有可公开访问的地址,在这种情况下,无法直接连接到该地址。

如果没有NAT路由器,可能仍会阻止上游连接。

答案 2 :(得分:0)

我很认真:许多互联网服务提供商积极致力于停止您将家庭连接用作网络服务器。你可能想在投入太多时间之前打电话给他们。

答案 3 :(得分:-1)

如果您想在家中主持,您的ISP可能会限制您。