由于某些原因,我必须在等待与计算机连接的android SocketServer上进行设置。一切顺利,正在创建带有客户端(计算机)的套接字,但流无法打开。它只是暂停而没有任何错误或消息。
客户:
s = new Socket(ip, 4567);
ois = new ObjectInputStream(s.getInputStream());
System.out.println("ois..");// not showing, so can't open input stream
oos = new ObjectOutputStream(s.getOutputStream());
System.out.println("oos.."); // same here
服务器:
socket = new ServerSocket(4567);
System.out.println("Waiting for connection,,"); // showing
client = socket.accept();
System.out.println("Connected"); //showing
ois = new ObjectInputStream(client.getInputStream());
System.out.println("ois.."); // not showing
oos = new ObjectOutputStream(client.getOutputStream());
System.out.println("oos.."); // not showing too
System.out.println("Stream,s opened");
我的apk有互联网预任务。我使用的是 4567 端口。任何其他应用程序都不会阻止该端口。
可能出了什么问题?
尝试先在服务器中打开 ObjectOutputStream。
socket = new ServerSocket(4567);
System.out.println("Waiting for connection,,"); // showing
client = socket.accept();
System.out.println("Connected"); //showing
oos = new ObjectOutputStream(client.getOutputStream());
ois = new ObjectInputStream(client.getInputStream());
System.out.println("Stream,s opened");
我没有看到任何超时,这就是它停止的原因。
可能存在一些网络问题;您是否验证了设备的 IP 地址是否正确?
这不太可能,但可能有一些防火墙规则阻止了连接。