该应用程序使用套接字连接到计算机,但只有在计算机通过以太网电缆连接到网络时才会连接。我试过禁用防火墙,但没有区别。
计算机上服务器的代码:
int port = 7936;
while(true){
ServerSocket server = new ServerSocket(port);
System.out.println("Waiting for client ...");
Socket client = server.accept();
System.out.println("Client from "+client.getInetAddress()+" connected");
InputStream in = client.getInputStream();
以及应用程序上客户端的代码:
Socket socket = new Socket(address,7936);
OutputStream out = socket.getOutputStream();
String action = "2";
byte[] actByte = action.getBytes();
out.write(actByte);
socket.close();
地址由用户输入定义,所需的所有权限都已在清单xml文件中设置。 谢谢你的帮助。
修改
很抱歉延迟回复给出的答案。从那时起,我就可以在不同的网络上尝试该程序,它可以与无线连接的计算机配合使用,因此看起来问题出在网络而不是代码上。
感谢大家的回答,很抱歉我花了这么长时间回复。
答案 0 :(得分:0)
正如其他人所说,需要更多信息。当您断开计算机与有线连接的连接时,我认为它正在切换到wifi并且您已经确认您已联机。如果您的DHCP是因为接口已更改而您的计算机可能会获得不同的IP地址,因此MAC地址也不会更改。
检查计算机上的地址并确认您拥有正确的地址。
答案 1 :(得分:0)
我在想的是套接字没有绑定到您认为的IP地址。您可能希望尝试使用TcpListener类,这样您就可以将其绑定到所需的IP地址(网络适配器)。