因此,我正在尝试创建一个可在不同的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");
答案 0 :(得分:1)
不,您不必执行任何代码操作。
端口转发是一项网络操作。您的服务器(意味着您的程序,而不是计算机)侦听特定端口或一组端口。
当请求到达主机的网络时,将应用网络地址转换,以将请求转发到其他主机/端口。
是提供网络地址转换功能的设备,需要对其进行配置以实现此目标,以及如何完成此操作,具体取决于设备/供应商,但总的来说,应该不难发现。它将位于“网络”,“ NAT”或“端口转发”下。