Java多线程服务器无法正常工作

时间:2014-02-21 18:08:55

标签: java multithreading client-server

所以我正在尝试用Java创建一个服务器/客户端来提高我的技能。但是..出于某种原因,虽然每次服务器接受连接时都会创建一个新线程,但事情就是不起作用,只有一个客户端工作。
这是代码:

  while (true) {
            Socket client = null;
            client = server.accept();
            new Thread(new Server(client)).run();
        }

我不知道为什么会这样。我使用了一个教程,然而,事情不起作用。 谢谢!

2 个答案:

答案 0 :(得分:0)

所以,这是问题的解决方案。

  

“那么启动和运行方法有什么区别?主要区别   是程序调用start()方法时创建一个新的Thread   如果你调用的话,run()方法中的代码在新的Thread中执行   run()方法直接没有创建新的线程并且运行代码()   将在当前线程上执行。   引自http://javarevisited.blogspot.com/2012/03/difference-between-start-and-run-method.html

将.run()函数更改为.start()解决了这个问题。 享受。

答案 1 :(得分:0)

Kryonet是一个非常好的Java库,它为使用NIO进行高效的TCP和UDP客户端/服务器网络通信提供了一个干净而简单的API。

它将使您的网络编程更加轻松,您可以更好地了解如何编写客户端和服务器端代码。

我建议您首先使用此库尝试您的网络编程技能,然后尝试实现自己的。