0

Javaソケットを使用して、ネットワークノードの1つに接続しています。コマンドを実行してデータを取得し、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!");
}
4

1 に答える 1

0

これを使ってみてください

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

ドキュメントの表示: SocketTimeoutException- 接続前にタイムアウトが発生した場合

于 2013-03-11T12:38:29.133 に答える