无法读取数据输出流发送的数字



这是我的客户端代码

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");

i don't got result

客户端需要调用dos.flush()dos.close()来将缓存的数据推送到服务器。(如果你想写更多的数据,那么刷新,否则关闭)

服务器端需要在DataInputStream实例上使用readInt读取数据。使用DataOutputStream写入的数据应该使用DataInputStream读取。

最后,去掉BufferedReader/InputStreamReader。

如果你在写端使用writeInt(),你应该在读端使用readInt()(所有的方法名称在DataOutputStream和DataInputStream之间相关,请阅读javadoc)。

相关内容

  • 没有找到相关文章

最新更新