【发布时间】:2020-04-16 22:29:43
【问题描述】:
我用 Java 创建了一个带有套接字的服务器和一个连接到服务器的客户端。这适用于同一个wifi上的两台电脑,我怎样才能让它在两个不同的wifi上工作(两台电脑在两个不同的房子里)? 附言对不起,我的英语不好。
【问题讨论】:
-
获取公网IP地址。
标签: java sockets server client wifi
我用 Java 创建了一个带有套接字的服务器和一个连接到服务器的客户端。这适用于同一个wifi上的两台电脑,我怎样才能让它在两个不同的wifi上工作(两台电脑在两个不同的房子里)? 附言对不起,我的英语不好。
【问题讨论】:
标签: java sockets server client wifi
您必须公开让您的服务器可用,以便能够与其他客户端建立连接(从其他 wifi 网络连接)
一种可能的解决方案是使用ngrok,这样可以将您的本地服务器映射到可公开访问的网址。该服务器绝对 免费可以使用,我个人多次使用它公开暴露我的本地服务器。
编辑 1 -
假设您的套接字服务器在端口 6666 上运行,您需要运行以下命令 -
./ngrok tcp 6666
这将导致以下响应
Session Status online
Account ********@gmail.com (Plan: Free)
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding tcp://0.tcp.ngrok.io:15341 -> localhost:6666
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
在此之后,您将能够使用来自其他 java 客户端的以下命令连接您的服务器 -
socket = new Socket("0.tcp.ngrok.io", 15341);
【讨论】: