答案 0 :(得分:2)
这意味着您有多个套接字侦听同一端口。这并不罕见。
使用SO_REUSEADDR选项,多个线程或进程可以共享侦听端口。
这通常用作应用程序扩展UDP服务以使用多个线程或CPU核心的简便方法。让我们想象一下在UDP端口3702上监听的服务。让我们说对于每个传入的数据包,必须进行一些长时间的阻塞I / O操作。如果服务器应用程序是单线程的,那么它一次只能处理1个数据包。
相反,服务器创建4个线程(或4个进程)。每个线程创建套接字,在套接字上设置SO_REUSEADDR选项,绑定到端口3702,并开始侦听传入的数据包(recvfrom
)。当传入的数据包到达时,recvfrom
呼叫阻塞的其中一个线程将被唤醒并有一个要处理的数据包。当该线程正在处理数据包时,其他线程也能够并行接收数据包。