我试图在两个独立局域网上的两台计算机之间建立一个套接字连接。我的两台电脑就是这样安装的。我的MacBook位于路由器的IP为121.245.152.106
的网络上。我的戴尔个人电脑出现在路由器的IP是27.4.193.156
的网络上。
我使用我的MacBook作为我的服务器。此代码将只接受来自客户端(戴尔PC)的套接字连接,并打印它的IP地址。此代码出现在我的MacBook上:
LolServer.java:
import java.io.*;
import java.net.*;
public class LolServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8080); // ServerSocket listening to port 8080
Socket socket = server.accept();
System.out.println(socket.getInetAddress().getHostAddress()); // Printing the client IP address.
socket.close();
server.close();
}
}
当我
telnet 192.168.1.102 8080
// or
telnet 127.0.0.1 8080
在我的本地机器(MacBook)中,代码工作正常,LolServer
程序打印。
192.168.1.102
// or
127.0.0.1
分别作为其输出。这里,192.168.1.102
是由带有IP 121.245.152.106
的路由器提供的我的MacBook的本地/私有IP地址。
问题就在这里。当我试图从远程网络访问程序,即从我的戴尔PC,telnet
命令继续搜索服务器,不打印任何输出。
这就是我从客户端尝试过的:
telnet 121.245.152.106 8080
这没有输出。它甚至没有在我的Macbook上打印任何输出。我想我的插座连在一起都没有。121.245.152.106
是用来连接我的戴尔电脑的IP吗?这样做是没有意义的:
telnet 192.168.1.102 8080
因为192.168.1.102
是私有IP地址。
请帮帮我,我真的需要把这件事做好。提前谢谢。
发布于 2015-03-20 05:31:12
端口转发(有时称为端口触发)是配置路由器使连接到它的计算机或网络设备可从本地网络以外的其他计算机和网络设备访问的过程。
来源:https://m.youtube.com/watch?v=-K6jMYBfuIY
这意味着连接被路由器阻塞。此外,端口转发第一次是棘手的,有点超出我的能力来指导。这是一个很好的网站来帮助你:forwarding/,基本上你选择你的路由器和网站将教你基于你的路由器。
https://stackoverflow.com/questions/29167455
复制相似问题