我正在java中实现一个服务器客户端应用程序。 情况是客户端向服务器发送一些消息,服务器可能会或可能不会响应(发回一些消息)。
看看这个
is = new DataInputStream(client.getInputStream());
现在我正在使用is.readUTF();
方法收回消息。
问题是 readUTF是一个阻塞调用,它会在那里停止程序以接收消息。 正如我所说,服务器可能会或可能不会响应,我需要一种方法来停止readUTF方法停止程序(检查是否有消息),如果没有收到消息,继续继续。
答案 0 :(得分:1)
使用DataInputStream.available()
检查是否有要读取的数据,并使用here所述的InputSteam
包裹套接字的PushbackInputStream
。