我正在用java实现一个服务器客户端应用程序。 情况是客户端向服务器发送一些消息,服务器可能会也可能不会响应(发回一些消息)。
<小时/>看看这个
is = new DataInputStream(client.getInputStream());
现在我正在使用 is.readUTF();
方法来获取消息。
问题是 readUTF 是一个阻塞调用,它会立即停止程序以接收消息。 正如我所说,服务器可能会或可能不会响应,我需要一种方法来阻止 readUTF 方法停止程序(检查是否有消息)并在没有收到消息时继续继续。
最佳答案
使用DataInputStream.available()
检查是否有数据要读取,并使用PushbackInputStream
包装套接字的InputSteam
,如here所述.
关于java - 如何检查 readUTF 方法是否有某些值可以接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39853760/