我正在制作一个服务器/客户端程序,用于在它们之间发送和接收数据。 该程序在模拟器上运行完美,但在真正的Android设备上通过WIFI进行测试时,它无法连接到服务器。
服务器端
ServerSocket serverSocket = new ServerSocket(44444);
Socket clientSocket = serverSocket.accept();
客户端
Socket socket = new Socket("192.168.1.2", 44444);
问题不在于发送数据,而是在连接建立中。 Android手机没有看到服务器端!
答案 0 :(得分:0)
您正在使用构造函数,该构造函数需要字符串 hostname 。但是,您提供的是互联网地址。您必须使用另一个constructor,它接受一个地址作为参数。
在客户端尝试以下代码:
Socket socket = new Socket (InetAddress.getByName ("192.168.1.2"), 44444);
答案 1 :(得分:0)
您确定智能手机可以看到您的服务器吗?...您可以尝试将电脑连接到WIFI并使用telnet IP端口验证您是否可以访问服务器。
答案 2 :(得分:0)
android设备无法检测到ad-hoc网络的Windows 你必须首先通过这样做来制作你的PC热点:
步骤1:打开CMD(管理员特权)并运行以下命令 netsh wlan hostednetwork mode = allow ssid = NAME key = PASSWORD
这将使wifi成为一个热点 现在运行这个来启动wifi热点: netsh wlan start hostednetwork
并停止热点运行此命令: netsh wlan stop hostednetwork
答案 3 :(得分:-1)
问题在于您的网络。
请确保真正的Android设备和您的服务器(192.168.1.2
)位于同一网络中。
如果它们只在同一个网络中,那么您可以从客户端
与服务器通信