这是我的客户端代码
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()
来将缓冲的数据推送到服务器。 (如果你打算写入更多数据,则flush,否则关闭。)
服务器端需要使用DataInputStream
实例上的readInt读取数据。使用 DataOutputStream 写入的数据应使用 DataInputStream 读取。
最后,摆脱 BufferedReader/InputStreamReader。这是错误的。
关于java - 无法读取使用 DataOutputStream 发送的号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303802/