Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TCP客户端/服务器_Java_Tcp_Client_Listen - Fatal编程技术网

Java TCP客户端/服务器

Java TCP客户端/服务器,java,tcp,client,listen,Java,Tcp,Client,Listen,我有一个问题,我不知道如何继续在Java TCP套接字问题。就我们从互联网上所能得到的而言,用Java实现TCP服务器和客户端通信并不难。但是,大多数示例都会让服务器侦听端口,然后循环,直到获得连接到服务器的客户端,然后代码将执行server.accept并进一步移动。例如: public static void main(String[] args) throws IOException { ServerSocket s = new ServerSocket(PORT); S

我有一个问题,我不知道如何继续在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

我需要知道如何克服这个问题,因为我不太确定我的理解是否有错误。请提供帮助和建议。谢谢大家!

致以最良好的祝愿,
yiying

听起来你需要在一个线程中工作,同时等待另一个线程上的网络连接。看看这本书。请注意,由于使用Swing,因此必须小心wrt。哪个线程将修改您的JFrame等,您应该知道该实用程序。

听起来您需要在一个线程中工作,同时等待另一个线程上的网络连接。看看这本书。请注意,由于使用Swing,因此必须小心wrt。哪个线程将修改您的JFrame等,您应该知道该实用程序。

+1 Brian说了什么。一种常见的模式是将您的接收器放在一个线程中,并在需要为传入连接提供服务时让它生成更多的工作线程。如果你需要速度,考虑使用池来减少线程创建的开销。谢谢大家,我已经按照布瑞恩和约翰的建议整理了所有的东西。我已经编写了代码来创建一个新线程来侦听,而原始过程可以继续运行。谢谢大家+布莱恩说了什么。一种常见的模式是将您的接收器放在一个线程中,并在需要为传入连接提供服务时让它生成更多的工作线程。如果你需要速度,考虑使用池来减少线程创建的开销。谢谢大家,我已经按照布瑞恩和约翰的建议整理了所有的东西。我已经编写了代码来创建一个新线程来侦听,而原始过程可以继续运行。谢谢大家!