UDP 连接在 netstat 命令中多次出现

UDP connection appearing multiple times in netstat command

我运行以下命令

我想问一下

为什么最后4行是一样的?这是同一个连接还是什么?

这意味着您有多个套接字在同一端口上侦听。这并不少见。

使用SO_REUSEADDR选项,多个线程或进程可以共享一个监听端口。

这通常用作应用程序扩展 UDP 服务以使用多个线程或 CPU 核心的一种简单方法。让我们想象一下在 UDP 端口 3702 上侦听的服务。假设对于每个传入数据包,必须完成一些长时间阻塞 I/O 操作。如果服务器应用程序是单线程的,它一次只能处理 1 个数据包。

因此,服务器创建了 4 个线程(或 4 个进程)。每个线程创建套接字,在套接字上设置 SO_REUSEADDR 选项,绑定到端口 3702,并开始侦听 (recvfrom) 传入的数据包。当传入数据包到达时,阻塞在 recvfrom 调用上的线程之一将被唤醒并有一个数据包要处理。当该线程正在处理数据包时,其他线程也能够并行接收数据包。