【发布时间】:2015-10-20 18:34:28
【问题描述】:
以下是我正在尝试编写的 Java 应用程序的一小部分:
Socket socket = new Socket(hostname, portnumber);
DataInputStream socketInput = new DataInputStream(socket.getInputStream());
try{
socket.setSoTimeout(10000);
try{
byte[] msgHeader = new byte[4];
if (socketInput.read(msgHeader) != -1)
{
// process message
}
}
catch (IOException e)
{
// process exception
}
catch (SocketTimeoutException ste)
{
// process exception
}
}
catch (SocketException se)
{
// process exception
}
我收到一条错误消息,指出无法访问 catch(SocketTimeoutException)。我想建立一个套接字超时以防止套接字 read() 永远阻塞,如果发生 SocketTimeoutException,我的应用程序将尝试建立到下一个可用服务器的套接字连接并尝试相同的 read() 操作。
非常感谢您提供的任何帮助,因为我尝试使用不同的 IO 类都没有成功。
【问题讨论】:
标签: java