如何在服务器上使用端口转发?

时间:2020-02-10 19:58:49

标签: c#

因此,我正在尝试创建一个可在不同的wifi网络上运行的服务器,听说有人需要使用端口转发。这是我在代码中实现的还是在路由器上设置的吗?另外,如何在路由器上进行设置?我在下面发布了我的代码,因为我不知道是否需要它。

服务器

IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddr = ipHost.AddressList[1];
IPEndPoint localEndPoint = new IPEndPoint(ipAddr, port);
Socket serverSocket = new Socket(ipAddr.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
System.Console.WriteLine("Socket running on port " + port);
serverSocket.Bind(localEndPoint);
System.Console.WriteLine("Accepting Connections");
System.Console.WriteLine(ipAddr);

serverSocket.Listen(10);
while (true)
{
    Socket clientSocket = serverSocket.Accept();
    Thread t = new Thread(() => Login.login(clientSocket));
    System.Console.WriteLine("Client accepted.");
}

客户

System.Console.WriteLine("attempting to connect");
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
System.Console.WriteLine("tesinft3");
clientSocket.Connect(IPAddress.Parse("0.0.0.0"), port);
System.Console.WriteLine("tesinft4");
System.Console.WriteLine("Connected to Server");

1 个答案:

答案 0 :(得分:1)

不,您不必执行任何代码操作。

端口转发是一项网络操作。您的服务器(意味着您的程序,而不是计算机)侦听特定端口或一组端口。

当请求到达主机的网络时,将应用网络地址转换,以将请求转发到其他主机/端口。

是提供网络地址转换功能的设备,需要对其进行配置以实现此目标,以及如何完成此操作,具体取决于设备/供应商,但总的来说,应该不难发现。它将位于“网络”,“ NAT”或“端口转发”下。