1

我有一个问题,我不知道如何进一步处理 Java TCP 套接字问题。就我们可以从 Internet 获得的信息而言,不难获得大量 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 回答