是否有一种简单(非迭代)的方法来绑定两个套接字,一个 TCP 和一个 UDP,以保证两者具有相同的临时端口?
我有一个简单的服务器,最初通过 TCP 连接,但也通过 UDP 传输。我不想从客户端发送 UDP 数据包后连接只是为了让服务器发现客户端的 UDP 临时端口。除非必须,否则我不想通过初始 TCP 连接消息发送端口号。
现在,我在 TCP 套接字上的 getsockname 之后显式绑定客户端 UDP 套接字的端口,以发现操作系统分配的临时端口。它还没有失败,但感觉很脆弱。
编辑: 为了澄清,当前的实现假设操作系统永远不会为已经被 UDP 套接字使用的 TCP 套接字分配临时端口。