无法读取使用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)。