如何使用java套接字通过两个不同的wifi连接两台pc?
我用Java创建了一个带有套接字的服务器和一个连接到服务器的客户端。这在同一wifi上的两台pc之间工作,我如何使它在两个不同的wifi上工作(两台pc在两个不同的房子里)?如何使用java套接字通过两个不同的wifi连接两台pc?,java,sockets,server,client,wifi,Java,Sockets,Server,Client,Wifi,我用Java创建了一个带有套接字的服务器和一个连接到服务器的客户端。这在同一wifi上的两台pc之间工作,我如何使它在两个不同的wifi上工作(两台pc在两个不同的房子里)? 另外,对不起,我的英语不好。您必须公开使用服务器才能从其他客户端连接(从其他wifi网络连接) 一个可能的解决方案是使用它,它将使您的本地服务器映射到可公开访问的url成为可能。这台服务器绝对是免费的,我个人多次使用它公开我的本地服务器 编辑1- 假设套接字服务器在端口6666上运行,则需要运行以下命令- ./ngrok
另外,对不起,我的英语不好。
您必须公开使用服务器才能从其他客户端连接(从其他wifi网络连接)
一个可能的解决方案是使用它,它将使您的本地服务器映射到可公开访问的url成为可能。这台服务器绝对是免费的,我个人多次使用它公开我的本地服务器 编辑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);
您必须使服务器公开可用,才能从其他客户端连接(从其他wifi网络连接) 一个可能的解决方案是使用它,它将使您的本地服务器映射到可公开访问的url成为可能。这台服务器绝对是免费的,我个人多次使用它公开我的本地服务器 编辑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);
获取公共IP地址。获取公共IP地址。抱歉,我需要帮助,我下载了ngrok,并在端口80上使用命令ngrok http使用CMD启动了它,我从XAMPP激活了apache,但我不知道如何在java程序上使用ngrok,对于连接,我使用Socket Socket=new Socket(“localhost”,port);在我使用6789端口的java程序中,我尝试编写abcdef.ngrok.io而不是localhost,但在我尝试将80替换为6789之后,连接失败,但服务器在我启动后立即终止。有什么建议吗?您需要为套接字连接映射TCP协议,对于您的用例,它将类似于。/ngrok TCP 6789,之后它将为您提供类似于tcp://url:port . 使用此url和端口,而不是本地主机和端口。我对它进行了测试,并能够使用新的套接字(“0.tcp.ngrok.io”,16261)连接它,其中0.tcp.ngrok.io和16261是ngrok提供的url和端口。请测试并让我知道您是否仍然面临此问题。非常感谢我认为它有效,我尝试了同一个wifi,它有效,一旦有机会,我将尝试两个不同的wifi,我会让您知道,再次感谢如果没有您,我将花费数月时间来解决此问题。对不起,我需要帮助,我下载了ngrok,并在端口80上使用命令ngrok http启动了它,我从XAMPP激活了apache,但我不知道如何在java程序上使用ngrok,对于连接,我使用Socket Socket=new Socket(“localhost”,port);在我使用6789端口的java程序中,我尝试编写abcdef.ngrok.io而不是localhost,但在我尝试将80替换为6789之后,连接失败,但服务器在我启动后立即终止。有什么建议吗?您需要为套接字连接映射TCP协议,对于您的用例,它将类似于。/ngrok TCP 6789,之后它将为您提供类似于tcp://url:port . 使用此url和端口,而不是本地主机和端口。我对它进行了测试,并能够使用新的套接字(“0.tcp.ngrok.io”,16261)连接它,其中0.tcp.ngrok.io和16261是ngrok提供的url和端口。请测试并让我知道您是否仍然面临此问题。非常感谢我认为它有效,我尝试了相同的wifi,它有效,一旦有机会,我将尝试两种不同的wifi,我会让您知道,再次感谢没有您,我将花费数月时间来解决此问题