Java 服务器/客户端Android程序不';不能在真正的安卓设备上工作

Java 服务器/客户端Android程序不';不能在真正的安卓设备上工作,java,android,sockets,client-server,wifi,Java,Android,Sockets,Client Server,Wifi,我正在制作一个服务器/客户端程序,在它们之间发送和接收数据。 该程序在模拟器上运行良好,但当通过WIFI在真正的android设备上进行测试时,它无法连接到服务器 服务器端 ServerSocket serverSocket = new ServerSocket(44444); Socket clientSocket = serverSocket.accept(); 客户端 Socket socket = new Socket("192.168.1.2", 44444); 问题不在于发送数据

我正在制作一个服务器/客户端程序,在它们之间发送和接收数据。 该程序在模拟器上运行良好,但当通过WIFI在真正的android设备上进行测试时,它无法连接到服务器

服务器端

ServerSocket serverSocket = new ServerSocket(44444);
Socket clientSocket = serverSocket.accept();
客户端

Socket socket = new Socket("192.168.1.2", 44444);

问题不在于发送数据,而在于建立连接。安卓手机看不到服务器端

问题出在您的网络中。 请确保真正的android设备和您的服务器(
192.168.1.2
)位于同一网络中


如果它们只在同一个网络中,那么您可以从客户端与服务器通信

您正在使用一个构造函数,该构造函数需要一个字符串主机名。但是,您提供的是internet地址。您必须使用另一个,它接受一个地址作为参数

在客户端尝试以下代码:

Socket socket = new Socket (InetAddress.getByName ("192.168.1.2"), 44444);

您确定您的智能手机可以访问您的服务器吗?…您可以尝试将pc连接到WIFI并使用telnet ip端口,然后验证是否可以访问服务器。

android设备无法检测到windows的特设网络 您必须首先通过以下操作使您的PC成为热点:

步骤1:打开CMD(管理员特权)并运行以下命令 netsh wlan hostednetwork mode=允许ssid=名称密钥=密码

这将使wifi成为热点 现在运行此命令以启动wifi热点: netsh wlan启动主机网络

要停止热点,请运行以下命令:
netsh wlan stop hostednetwork

是否有错误消息?否。程序正常打开,但无法连接。是的,但您调试了它吗?你必须在某处有某种stacktrace…你在Android中设置了允许使用互联网的权限吗?是的,它在模拟器上运行良好,但在真正的设备上不工作!尝试从android play store安装Ping应用程序,并确保您能够从设备与端口44444进行通信。我认为您的端口44444没有为设备打开。应用程序主页的微调器中有一个选项称为“检查端口范围”。选择它并提供您要检查的端口号。当我检查端口44444是否打开时,它连接到端口44444上,并告诉我端口已打开,但程序仍无法连接到服务器!错误:构造函数套接字(InetAddress[],int)未定义!您确定已将
getAllByName
更改为
getByName
?请参阅我帖子中的链接。它显示了
套接字(InetAddress,int)
是从API级别1开始定义和记录的。是的,我做到了,我现在的代码是:Socket Socket=new Socket(InetAddress.getByName(“192.168.1.2”),44444;错误是一样的吗?错误日志是否在同一位置显示错误?你把我的代码粘贴到多个文件中了吗?粘贴新错误。没有错误。服务器仍在运行,客户端也在运行,但当我尝试连接时,什么都没有发生。如何确保智能手机可以看到服务器?如果您有pc,您可以将其连接到WIFI(与智能手机使用的相同),然后使用tcp客户端,您可以尝试连接到服务器。