首先,在同一台服务器上同时使用 UDP 和 TCP 有什么问题吗?
其次,我可以使用相同的端口号吗?
是的,您可以对 TCP 和 UDP 使用相同的端口号。许多协议已经这样做了,例如 DNS 在 udp/53 和 tcp/53 上工作。
从技术上讲,每个协议的端口池是完全独立的,但对于可以使用 TCP 或 UDP 的更高级别的协议,它们默认使用相同的端口号是惯例。
编写服务器时,请记住 TCP 套接字的事件序列比 UDP 套接字要困难得多,因为除了正常的 socket
和 bind
调用之外,您还必须调用 listen
和 {4 }。
此外,accept
调用将返回一个新的套接字,它是 那个 套接字,您还必须轮询接收事件。您的服务器应准备好继续accept
在原始套接字上建立连接,同时为多个客户端提供服务,每个客户端都将在自己的套接字上触发接收事件。
首先,在服务器上同时使用 tcp 和 udp 没有问题。
其次,我们可以在同一个端口上同时有 UDP 和 TCP 请求,因为每个请求都由源 IP、目标 IP、源端口、目标端口、协议包含的五元组标识(因为协议可以是 TCP 或 UDP)。