这是我的客户代码
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(); }
但是即使我这样修改它,我也不会在fromClient中接收任何内容
System.out.println(fromClient+"test");
我没有结果
客户端需要调用dos.flush()或dos.close()导致将缓冲的数据推送到服务器。(如果您打算写入更多数据,请刷新,否则关闭。)
dos.flush()
dos.close()
服务器端需要在DataInputStream实例上使用readInt读取数据。使用DataOutputStream写入的数据应使用DataInputStream读取。
DataInputStream
最后,摆脱BufferedReader / InputStreamReader。这是错误的。