2

共有三个类:Server、Client、Test。我需要运行等待客户端并处理它的命令的服务器。在尝试在 Test 中运行两个类时,它会在服务器的 while 中结束(等待套接字上客户端连接的周期):

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

如何运行和调试这种应用程序?

4

3 回答 3

3

您可以在 Eclipse 中同时运行两个进程。在“debug”中运行Server,在“debug”中运行Test,每个进程都会在指定的断点处停止。据我了解,测试调用客户端命令,对吗?
您无需在同一进程中同时运行两者。

于 2012-05-24T07:35:58.570 回答
3

您可以Threads像这样创建两个:

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 回答