【发布时间】:2015-09-15 02:13:30
【问题描述】:
我有一个简单的客户端-服务器脚本设置,它允许我从我的 android 设备向我的计算机发送消息。计算机服务器脚本是这样的 -
ServerSocket server = new ServerSocket(9000);
Socket socket = server.accept();
//read from socket to ObjectInputStream object
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
//convert objectinputstream to string
String message = (String)ois.readObject();
System.out.println("Message received: " + message);
ois.close();
socket.close();
而 android 代码是这样的(请注意,此代码作为异步任务运行)-
socket = new Socket( "10.69.23.11",9000);
//write to socket using Objectouputstream
oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(msg);
oos.close();
此代码有效,我在几周前对其进行了测试。但是从上周我从 java 1.7 升级到 1.8 后开始,这段代码不再有效。如果我完全关闭防火墙,此代码将再次开始工作。我明确添加了入站和出站规则,让端口 9000 作为 tcp 通过,但它仍然无法在防火墙开启的情况下工作。谁能帮帮我?
【问题讨论】:
-
它不起作用是什么意思?是不是,有错误?如果是这样,那么您可以发布堆栈跟踪吗?还是在运行时它只是挂起而不做任何事情?
-
"...此代码不再有效。" - 这并不能真正帮助我们确定您的问题所在。它在什么时候不起作用?您是否在服务器上看到“收到的消息:”消息?
标签: java android sockets server