Java 如何同时侦听命令行和2个传入连接

Java 如何同时侦听命令行和2个传入连接,java,network-programming,Java,Network Programming,我需要用java创建一个循环dht,我的同伴需要同时做以下事情- 侦听命令行输入 侦听端口X上的TCP和UDP连接 既然监听命令行和等待连接都是阻塞任务,我该如何完成呢?(从理论上讲,两个线程不能同时运行)。我终于想出了办法。我的解决方案涉及使用线程。 我使用java.util.concurrent.ExecutorService创建线程,在我所说的每个线程中,我的服务器都在侦听端口。它们不必“同时运行”。“只要用三条线就行了。”劳恩,那怎么办呢?由于线程不能同时运行,是否存在丢失连接的可能性?

我需要用java创建一个循环dht,我的同伴需要同时做以下事情-

  • 侦听命令行输入
  • 侦听端口X上的TCP和UDP连接

  • 既然监听命令行和等待连接都是阻塞任务,我该如何完成呢?(从理论上讲,两个线程不能同时运行)。

    我终于想出了办法。我的解决方案涉及使用线程。
    我使用java.util.concurrent.ExecutorService创建线程,在我所说的每个线程中,我的服务器都在侦听端口。

    它们不必“同时运行”。“只要用三条线就行了。”劳恩,那怎么办呢?由于线程不能同时运行,是否存在丢失连接的可能性?另外,我认为像readline()这样的操作是阻塞,这不会破坏事情吗?您的Java程序代码不必捕获以太网连接器上的位。您的操作系统将处理该问题并缓冲数据。读线上的阻塞与套接字上的阻塞读取没有任何区别。正如我写的:每个套接字一个线程,stdin=3个线程。你什么都没“弄明白”。去年10月你就被告知了。