不久前我遇到了这个问题,最近的一个讨论提醒我,我不知道如何解决它......
假设你有一个服务器和客户端通过 UDP 通信。
您的客户端侦听 UDP 端口 X 并接收服务器数据包。
然后启动第 3 方进程,它也在侦听 UDP 端口 X。
现在它可能会读取我的客户端要接收的数据包并将它们从队列中删除,而我的客户端根本不会收到它们。
或者更糟糕的是,如果客户端向服务器发送 UDP 消息,那么它会为它们分配 TCP 端口以进行连接。服务器仍然必须连接到客户端知道的恒定 UDP 端口 X,即使它正在使用中,否则没有人能够连接到它。
我该如何预防?