[英]Can not read number send with 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();
}
但是即使我这样修改它,我也不会在fromClient中接收任何内容
System.out.println(fromClient+"test");
我没有结果
如果在写端使用writeInt()
,则应在读端使用readInt()
(所有方法名称在DataOutputStream和DataInputStream之间相关,请阅读javadoc)。
客户端需要调用dos.flush()
或dos.close()
才能将缓冲的数据推入服务器。 (如果您打算写入更多数据,请刷新,否则关闭。)
服务器端需要在DataInputStream
实例上使用readInt读取数据。 使用DataOutputStream写入的数据应使用DataInputStream读取。
最后,摆脱BufferedReader / InputStreamReader。 这是错误的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.