java - 从不同路由器上的客户端连接到服务器

标签 java sockets client serversocket portforwarding

我正在尝试从连接到不同路由器的计算机连接到我家的一台计算机上的 ServerSocket。我已经搜索了几个小时,并且已经设置了端口转发。我已经尝试使用我的公共(public) IP 地址和端口号创建 Socket,但没有成功。我的问题是:知道我的公共(public) IP 地址、服务器的本地 IP 地址和端口号,我如何创建一个 Socket 以便它正确连接到服务器?

这些是我尝试过的构造函数,但没有成功:

new Socket(my_public_ip_address, port);
new Socket(my_local_ip_address, port); <- this one works only if both computers are connected to the same router

提前致谢!

最佳答案

首先:如果您不走运(像我一样),您将无法与您的服务器计算机建立连接。 (在我的情况下,大学网络会阻止所有传入连接)。

因此,也许您的服务器不是问题,而是路由器的路径(连接)。

在您的情况下,我首先会尝试从您的客户端开始跟踪您的服务器。 Traceroute 至少应该到达您的路由器。 (我不擅长计算机网络,所以请纠正我,如果我弄错了)

关于java - 从不同路由器上的客户端连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39861104/

相关文章:

javascript - 如何用 javascript 编写客户端 api

java - 将 JSON 转换为 Getter/Setter 语句

java - 为什么 spring.expression.compiler.mode 无法编译以下内容?

java - 为 Twitter OAuth 生成哈希

python - 错误 : [Errno 11004] getaddrinfo failed

java - 聊天客户端程序出现问题

java - java应用程序无缘无故无响应

Java "NotSerializableException: java.net.Socket"不发送套接字时

java - RTT 上消息大小的意义 : Simple Java Server/Client Socket program

c - c中使用fork()处理socket中多个客户端的逻辑问题