[英]Java Multithreaded server not working
因此,我尝试使用Java创建服务器/客户端以提高技能。 但是..由于某种原因,尽管每次服务器接受连接时我都会创建一个新线程,但事情只是不起作用,只有一个客户端正在工作。
这是代码:
while (true) {
Socket client = null;
client = server.accept();
new Thread(new Server(client)).run();
}
而且我不知道为什么会这样。 我为此使用了一个教程,但是仍然无法正常工作。 谢谢!
因此,这是该问题的解决方案。
“那么start和run方法之间的区别是什么?主要区别是,当程序调用start()方法时,将创建一个新线程,并且在新Thread中执行run()方法中的代码,而如果直接调用run()方法则不会创建线程,并且run()中的代码将在当前线程上执行。引自http://javarevisited.blogspot.com/2012/03/difference-between-start-and-run-method.html
将.run()函数更改为.start()解决了该问题。 请享用。
Kryonet是一个非常好的Java库,它提供了一个简洁的API,可以使用NIO进行有效的TCP和UDP客户端/服务器网络通信。
这将使您的网络编程工作变得更加容易,并且您可以更好地了解如何编写客户端和服务器端代码。
我建议您先尝试使用此库来尝试网络编程技能,然后再尝试实现自己的网络编程技能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.