我正在用 Java 从头开始做一个简单的 telnet 实现。 我已经在客户端和服务器之间建立了一个简单的套接字连接。我的问题是整个服务器应用程序在等待连接时卡住 - 即使我在单独的线程中运行它。有没有(最好是)简单的方法来解决这个问题?
线程起始片段:
worker slave = new worker();
Thread slaveThread = new Thread(slave);
slaveThread.run();
主题片段:
公共(public)类 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新手
最佳答案
Yes i start the thread with calling run()
尽管 Thread 实现了 Runnable,但您不应该调用 run()
。您应该调用Thread.start() ,它在新线程中调用run()
。如果您直接调用run()
,则当前线程是执行它的线程,而不是您创建的线程。
关于Java 程序卡住直到建立套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532276/