0

该应用程序使用套接字连接到计算机,但只有当计算机通过以太网电缆连接到网络时才会连接。我试过禁用防火墙,但这没什么区别。

计算机上服务器的代码:

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 文件中设置。谢谢您的帮助。

编辑

很抱歉延迟回复给出的答案。从那以后,我已经能够在不同的网络上尝试该程序,并且它可以与无线连接的计算机一起使用,因此看起来问题出在网络而不是代码上。

感谢大家的回答,很抱歉花了这么长时间才回复。

4

2 回答 2

0

我在想的是套接字没有绑定到你认为的 IP 地址。您可能希望尝试使用TcpListener类,这样您就可以将它绑定到您想要的 IP 地址(网络适配器)。

于 2013-03-21T16:31:23.107 回答
0

正如其他人所提到的,需要更多信息。当您断开计算机与有线连接的连接时,我假设它正在切换到 wifi 并且您已验证您在线。如果您使用 DHCP,您的计算机可能会获得不同的 IP 地址,因为接口发生了变化,而 MAC 地址也不会发生变化。

检查计算机上的地址并验证您的地址是否正确。

于 2013-03-21T15:58:56.233 回答