超时一个非常长的socket查询



我使用java套接字连接到我们的网络节点之一,执行命令获取一些数据并在html网格中显示。问题是当节点不可用或由于网络问题而无法访问时,查询不会作为结果应用程序超时性能受到严重影响。我已经尝试了socket.sotimeout(),但它似乎不起作用。下面是给出的代码供参考。

public void initializeConnection(String host, int port)
            throws IOException
{
    try
    {
        if(debug)
            System.out.println((new StringBuilder()).append("connecting to host ").append(host).append(" port: ").append(port).toString());
        socket = new Socket(host, port);
        socket.setSoTimeout(6000);
        socket.setTcpNoDelay(true);
        in = new BufferedInputStream(socket.getInputStream());
        out = new BufferedOutputStream(socket.getOutputStream());
    }
    catch(IOException e)
    {
        System.out.println("Connection could not be established");
        closeConnection();
        throw e;
    }
    if(debug)
        System.out.println("Connected!");
}

尝试使用

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ipAddress, port), timeout);

文档显示:SocketTimeoutException -如果在连接

之前超时

最新更新