-1

Runnable接続を待っているクラスがありSocketます。JButton接続の待機を停止してループから抜け出す可能性があることを追加したいと思います。

これがループです

volatile boolean finished = false;

while (!finished) {
    System.out.println("Server Started....");
    clientSocket = serverSocket.accept();    // want to skip this line when the button is pressed
    if (!clientSocket.isClosed() && ServerSettings.getServerStatus() != -1) {
        // start communication
    } else {
        // close connection
    }
}

この問題を探したところ、ループを終了するための解決策が見つかりました。しかし、これで私の問題が完全に解決されるわけではありません。変数の値を変更することはできますがfinished、新しい値を確認するには、待機を 1 回スキップする必要があります。

どんな助けもかなりのものです。

4

2 に答える 2

0

close()メソッドを呼び出すことができます。これにより、接続の待機が停止します。

于 2013-09-28T14:35:13.133 に答える
0

の代わりにServerSocketを使用するServerSocketChannelと、そのaccept()メソッドはブロックされません。ドキュメントから:

public abstract SocketChannel accept() throws IOException

このチャネルのソケットへの接続を受け入れます。

このチャネルが非ブロッキング モードの場合、保留中の接続がなければ、このメソッドはすぐに null を返します。

于 2013-09-28T14:46:53.867 に答える