无法通过WAN将客户端程序连接到服务器程序

问题描述 投票:0回答:1

我已经用java语言创建了一个带有serversocket和socket类的客户端服务器程序,并带有用于发送和接收数据的datainputstream和dataoutputstream。

但是问题是,当我在LAN(局域网)或localhost上运行它时,它可以正常工作,但是当我尝试通过WAN(广域网)将客户端与服务器连接时,它甚至都没有连接到服务器

并通过WAN连接它,我已经输入服务器端程序的IP地址作为套接字类的承包商的参数,例如:socket s = new socket(ipadd,port);并且它不会无任何错误地连接到服务器

所以请帮助我,长期以来我一直在解决这个问题。

这是我的服务器端程序代码this is my server side program

这是我的客户端程序代码this is my client side program code

java networking server client serversocket
1个回答
0
投票

您正在使用手机向服务器(在您的情况下是笔记本电脑)提供互联网连接,因此此处您的手机充当路由器,并且您的手机已向与其连接的设备提供了本地ip地址。因此,发生的事情是,当您在客户端应用程序中输入笔记本电脑的(服务器)IP地址以开始连接并且您的计算机没有任何公共IP地址时(该IP地址是您的移动设备分配的,但不是公开的)可用,它是一个本地IP地址,通常以192.168 ......开头。因此,客户端应用无法检测到您的服务器,并且连接到路由器的服务器也是如此。

因此,解决方案是,在客户端应用程序中输入移动设备的IP地址(向服务器提供互联网),并使用任何端口转发器应用程序将端口转发至服务器(笔记本电脑)的IP地址(这是您的电话/路由器分配给笔记本电脑的本地ip地址)和端口(您用于与客户端通信的端口),并且Google Play商店中有许多可用的port forwader应用程序,您可以使用其中任何一个。因此,根据您的情况,开始与客户端和服务器建立连接的步骤是:

1:从手机商店安装并启动手机中的任何端口转发器应用程序。 2:无法将端口(对于来自移动IP地址的每个请求)转发到服务器的IP地址(由移动设备分配给服务器)。 3:比在客户端应用程序中输入手机的IP地址。

它将与您的服务器建立连接...

© www.soinside.com 2019 - 2024. All rights reserved.