我正在从头开始用Java实现一个简单的telnet实现。 我已经在客户端和服务器之间建立了一个简单的套接字连接。我的问题只是整个服务器应用程序在等待连接时冻结 - 即使我在一个单独的线程中运行它。有没有(最好)简单的方法来解决这个问题?
线程入门代码段:
worker slave = new worker();
Thread slaveThread = new Thread(slave);
slaveThread.run();
帖子摘要:
公共类worker实现Runnable {
public void run()
{
try
{
ServerSocket srv = new ServerSocket(1337);
System.out.println("Thread is running!");
Socket clientSocket = srv.accept();
System.out.println("Connection made.");
}catch (IOException e){
System.out.println("Failed.");
}
提前致谢!
Java新手
答案 0 :(得分:2)
是的我通过调用run()
启动线程
虽然Thread实现了Runnable,但你不应该调用run()
。您应该拨打Thread.start(),在新主题中调用run()
。如果您直接致电run()
,当前主题是执行它的主题,而不是您创建的主题。