Java TCP服务器

Mik*_*ike 2 java

我正在构建一个需要运行TCP服务器的GUI应用程序.GUI是在Swing中构建的.我遇到的麻烦是运行服务器.我希望有一个人们可以安装的桌面应用程序,这将为我启动服务器.服务器在运行时阻塞,即:

while (true) {
     Socket client = serverSocket.accept();
     System.out.println("S: Receiving...");
Run Code Online (Sandbox Code Playgroud)

....

我试图调用服务器类,但它阻止了GUI.您认为将服务器与GUI分离的最佳方法是什么,同时可以轻松地将两者打包在一起?谢谢你的帮助!

Dan*_*que 5

Java中的套接字编程有两种基本方法:

  1. 每个套接字使用一个线程
  2. 在一个或少量线程中使用非阻塞IO

你可能想要第一个.如果你不知道你想要哪一个,那么你几乎肯定想要第一个.这是主观的,但我认为大多数人会同意#1更容易纠正.

这是一个讨论差异的答案.

假设您决定使用线程,请使用线程池!它简单而整洁.

我想你已经过了这个阶段,但是如果你想要一些基本的"101"类型材料,那么关于套接字和线程的旧Sun教程是尘土飞扬但很有用的.