无法读取使用DataOutputStream发送的号码
这是我的客户端代码
Random rand = new Random(); int n = rand.nextInt(50) + 1; DataInputStream dis = new DataInputStream(_socket.getInputStream()); DataOutputStream dos = new DataOutputStream(_socket.getOutputStream()); dos.writeInt(n);
这是服务器代码
try { DataInputStream dis = new DataInputStream(socket.getInputStream()); BufferedReader input = new BufferedReader(new InputStreamReader(dis)); int fromClient = input.read(); System.out.println(fromClient); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
但是我不会从inClient中找到任何东西,即使我像这样按钮
System.out.println(fromClient+"test");
我没有结果
客户端需要调用dos.flush()
或dos.close()
以使缓冲的数据被推送到服务器。 (如果您打算写更多数据,则刷新,否则关闭。)
服务器端需要使用DataInputStream
实例上的readInt读取数据。 应使用DataInputStream读取使用DataOutputStream编写的数据。
最后,摆脱BufferedReader / InputStreamReader。 这是错的。
如果您在写入端使用writeInt()
,则应该在读取端使用readInt()
(所有方法名称在DataOutputStream和DataInputStream之间关联,请阅读javadoc)。