Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java套接字通过两个不同的wifi连接两台pc?_Java_Sockets_Server_Client_Wifi - Fatal编程技术网

如何使用java套接字通过两个不同的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

我用Java创建了一个带有套接字的服务器和一个连接到服务器的客户端。这在同一wifi上的两台pc之间工作,我如何使它在两个不同的wifi上工作(两台pc在两个不同的房子里)?
另外,对不起,我的英语不好。

您必须公开使用服务器才能从其他客户端连接(从其他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,我会让您知道,再次感谢没有您,我将花费数月时间来解决此问题