繁体   English   中英

无法读取通过DataOutputStream发送的号码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM