Java 程序卡住直到建立套接字连接

标签 java sockets telnet

我正在用 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/

相关文章:

java - 无法使用 Jersey2.0 提供静态内容

c - 我如何在客户端的 recv() 中引起 ECONNRESET?

c - 伯克利套接字的网络连接速度慢

Python 从 Telnet 读取直到空字符

java - 能够加载类,但反射未显示该类

java - 加载数据存储Extjs动态指定代理

java - 在不继承抽象类的情况下模拟对抽象类的公共(public)方法的调用,最好使用 mockito

objective-c - 如何使用 CFNetwork 从套接字获取字节数组?

c - 要求 Telnet 服务器忽略命令

linux - 检查 SSH 隧道是否已启动并正在运行