c# - 我无法通过互联网连接到服务器

标签 c# networking sockets

我可以在本地计算机上运行服务器,然后在同一台计算机上连接它,但是当我尝试从另一台计算机通过Internet连接到它时,我的服务器上没有 Activity 迹象,也没有服务器的响应在我正在测试的计算机上。我已经尝试过XP和Vista,关闭防火墙,打开端口,以admin身份运行;没有任何工作。 :(

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


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

最佳答案

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

关于c# - 我无法通过互联网连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/195742/

相关文章:

c# - 如何将关闭按钮添加到 MahApps TabControl 的选项卡?

node.js - 网络应用程序和服务器应用程序之间的区别

java - 如何使用 Spring-Integration 返回套接字超时错误消息

c - 当我使用 '' 关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收 "control-c"

c# - ASP.NET Core 在 Linux 上的 Visual Studio Code 中调试时修改 View

c# - DI + 通用存储库 + 通用上下文 + 工作单元不起作用,为什么?

c# - 类库输出类型中的 Npgsql 程序集错误

ios - 如何使用 Alamofire 在请求正文中上传图像文件?

android - 使用 Ion 覆盖 HostnameVerifier

linux - 确定 TCP 端口是否可用的最佳 perl 方法