C# 我无法通过internet连接到服务器

C# 我无法通过internet连接到服务器,c#,networking,sockets,C#,Networking,Sockets,我可以在本地计算机上运行服务器,并在同一台计算机上连接到它,但当我尝试通过internet从其他计算机连接到它时,我的服务器上没有任何活动迹象,也没有我正在测试它的计算机上的服务器的响应。我尝试过XP和Vista,关闭防火墙,打开端口,以管理员身份运行;什么也没用 这是我用来接受传入连接的代码:如果您试图在家中托管,您的ISP可能会限制您。如果您试图在家中托管,您的ISP可能会限制您。我认为问题出在您的路由器,而不是您的计算机。当数据包来自Internet时,应将其路由到特定的服务器。您必须配置

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


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

如果您试图在家中托管,您的ISP可能会限制您。

如果您试图在家中托管,您的ISP可能会限制您。

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

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

您可能有东西阻塞了更高的连接。尝试从局域网上的另一台主机连接。如果你能做到这一点,那么操作系统本身就不会防火墙连接

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


如果没有NAT路由器,可能仍然有东西阻塞了上游的连接。

您可能有东西阻塞了更高的连接。尝试从局域网上的另一台主机连接。如果你能做到这一点,那么操作系统本身就不会防火墙连接

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


如果没有NAT路由器,可能还是有什么东西阻塞了上游的连接。

我是认真的:许多ISP积极阻止您将家庭连接用作web服务器。在你投入太多时间之前,你可能想打电话给他们。

我是认真的:许多ISP都会主动阻止你将家庭连接用作web服务器。您可能想在投入太多时间之前给他们打电话。

我可以通过局域网上的其他主机连接,我是否可以使用路由器将端口转发到服务器机器。我记得不久前,我在局域网上托管了一个VOIP服务器——Teamspeak和ventrilo,可以通过互联网访问,我可以做类似的事情吗?我可以通过局域网上的另一个主机连接,我可以使用路由器将端口转发到服务器机器。我记得不久前我在我的局域网上托管了一个VOIP服务器——Teamspeak和ventrilo,可以通过互联网访问,我可以做类似的事情吗?

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();
                }
}