如何检查readUTF方法是否有一些接收值

时间:2016-10-04 13:34:03

标签: java sockets

我正在java中实现一个服务器客户端应用程序。 情况是客户端向服务器发送一些消息,服务器可能会或可能不会响应(发回一些消息)。

看看这个

is = new DataInputStream(client.getInputStream());

现在我正在使用is.readUTF();方法收回消息。

问题是 readUTF是一个阻塞调用,它会在那里停止程序以接收消息。 正如我所说,服务器可能会或可能不会响应,我需要一种方法来停止readUTF方法停止程序(检查是否有消息),如果没有收到消息,继续继续。

1 个答案:

答案 0 :(得分:1)

使用DataInputStream.available()检查是否有要读取的数据,并使用here所述的InputSteam包裹套接字的PushbackInputStream