2

クライアント接続を受け入れるサーバーをJavaで作成しました。しかし、私は1つのクライアントしか接続できません

class Server extends Thread{

    private void startServer() {

     try{
        ss=new ServerSocket(3000);
        s=ss.accept();
        DataRead d1=new DataRead();        
        d1.t.start();



         }catch(Exception er){
             er.printStackTrace();
         }
        }                                        
  }
4

1 に答える 1

3

受け入れるソケットは 1 つだけです。あなたjButton1ActionPerformedが持っている

s=ss.accept();

ただし、これはjButton1 ボタンをクリックしたときに1 回だけ呼び出されます。accept()複数のクライアントを接続できるようにする場合は、呼び出し続ける必要があります。

また、 への各呼び出しはaccept()、クライアントが接続するまでブロックされ、その接続を表す新しいソケットを返すことに注意してください。したがって、複数のクライアントをサポートする場合はSocket、グローバル変数として使用するのではなく、クラスのコンストラクターに含める必要がありますDataRead。そのため、各リーダーは一意のソケット/接続/クライアントで動作します。

于 2012-06-13T07:57:49.143 に答える