1

Java TCP ソケットの問題をさらに進める方法がわからないという問題があります。インターネットから入手できる限り、Java での TCP サーバーとクライアントの通信のための実用的なソリューションを多数入手することは難しくありません。ただし、ほとんどの例では、サーバーがポートをリッスンし、サーバーに接続するクライアントを取得するまでループし、コードは server.accept() を実行してさらに移動します。例えば:

 public static void main(String[] args) throws IOException {
    ServerSocket s = new ServerSocket(PORT);
    System.out.println("Started: " + s);
    try {
      // Blocks until a connection occurs:
      Socket socket = s.accept();
      try {
        System.out.println("Connection accepted: "+ socket);

サーバーに接続しているクライアントがあれば、完全に機能します。そして、私の問題は、サーバーに接続しているクライアントがなくても、他の手順を続行する必要があることです。実際、同じポートと IP に接続しているクライアントがなくても手順を続行するには、別の JFrame を起動する必要があります。しかし、私は苦労していますが、クライアントがサーバーに接続していない限り、私の Java プログラムは白いポップアップ JFrame でハングします。

私の理解に間違いがあるかどうかはよくわからないので、これを克服する方法を知る必要があります。助けて、アドバイスしてください。ありがとうございました!

敬具、イー・イン

4

1 に答える 1

4

別のスレッドでネットワーク接続を待っている間に、あるスレッドで作業を行う必要があるようです。スレッドのチュートリアルをご覧ください。Swing を使用しているため、注意が必要です。どのスレッドが JFrame などを変更し、 SwingWorkerユーティリティに注意する必要があります。

于 2012-11-15T10:06:17.810 に答える