TCP和UDP套接字可以使用相同的端口吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (828)

首先,在同一台服务器上使用UDP和TCP有什么问题吗?

其次,我可以使用相同的端口号吗?

提问于
用户回答回答于

是的,可以为TCP和UDP使用相同的端口号。许多协议已经这样做,例如DNS在udp / 53 tcp / 53上工作。

从技术上讲,每个协议的端口池是完全独立的,但对于可以使用TCP或UDP的更高层协议,默认情况下它们默认为相同的端口

当使用你的服务器时,在TCP套接字的事件序列比对UDP套接字更难,因为还有正常socketbind调用,也有listenaccept

此外,accept调用将返回一个新的套接字,并且套接字将不得不轮询接收事件。服务器应该准备好继续连接原始套接字,同时服务多个客户端,每个客户端都将在自己的套接字上触发接收事件。

用户回答回答于

首先,在服务器上使用tcp和udp没有问题。

其次,我们可以在同一个端口上同时拥有UDP和TCP请求,因为每个请求都由源IP,目标IP,源端口,目标端口,PROTOCOL(协议可以是TCP或UDP)所包含的五元组来标识。

扫码关注云+社区

领取腾讯云代金券