2

サーバー、クライアント、テストの 3 つのクラスがあります。クライアントを待機し、そのコマンドを処理するサーバーを実行する必要があります。Test 内で 2 つのクラスを実行しようとすると、サーバーの while になります (ソケットでのクライアント接続の待機サイクル)。

class Test{
    new Server();
    new Client();
}

この種のアプリケーションを実行およびデバッグする方法は?

4

3 に答える 3

3

Eclipse では 2 つのプロセスを同時に実行できます。「デバッグ」でサーバーを実行し、「デバッグ」でテストを実行すると、プロセスはそれぞれ指定されたブレークポイントで停止します。私が理解している限り、テストはクライアント コマンドを呼び出しますよね?
両方を同じプロセスで実行する必要はありません。

于 2012-05-24T07:35:58.570 に答える
3

Threads次のように 2 つ作成できます。

Thread serverThread = new Thread(new Runnable() {
  @Override
  public void run() {
    new Server();
  }
});
Thread clientThread = new Thread(new Runnable() {
  @Override
  public void run() {
    new Client();
  }
});
serverThread.start();
clientThread.start();
于 2012-05-24T07:39:19.673 に答える
1

サーバーループ用に別のスレッドを開始する必要があります。これは通常、テストのセットアップ段階で行われます。

JUnit 4を使用していると仮定します。

class Test {
    @BeforeClass
    public static void setup() {
        new Thread() {
            public void run() {
                new Server();
            }
        }.start();
    }
    @AfterClass
    public static void teardown() {
        // stop the server (somehow)
    }

    @Test
    public void test() {
        new Client();
    }
}
于 2012-05-24T07:36:09.083 に答える