美文网首页C/C++经验技巧总结
TCP和UDP可以监听同一个端口

TCP和UDP可以监听同一个端口

作者: XDgbh | 来源:发表于2018-01-12 17:45 被阅读31次

    同时监听的意思是同一时刻让tcp的某一端口和udp的同一数值的端口同时处于listening状态。
    有的网友说udp的不能叫监听,应该有个其他的叫法。我认为都可以,只要把意思表达出来即可。

    tcp监听办法:
    SOCKET sock = socket(TCP)
    sockaddr_in sin
    sin.port = htons(xxx)
    bind(sock, sin)
    listen(sock)
    这样就进入了监听状态,在xxx端口,接下来可以accept了

    udp监听办法
    SOCKET sock = socket(UDP)
    sockaddr_in sin
    sin.port = htons(xxx)
    bind(sock, sin)
    这样就进入了监听状态,在xxx端口,接下来可以recvfrom和sentto了

    一般的,如果有另一个请求(无论是否在同一个进程,无论是tcp还是udp)也监听xxx端口,会在bind处报错(一般情况,具体不展开了)

    • 注意几点:
      1、端口不是物理概念,仅仅是协议栈中的两个字节
      2、TCP和UDP的端口完全没有任何关系,完全有可能又有一种XXP基于IP,也有端口的概念,这是完全可能的。
      3、TCP和UDP传输协议监听同一个端口后,接收数据互不影响,不冲突。因为数据接收时时根据五元组{传输协议,源IP,目的IP,源端口,目的端口}判断接受者的。

    相关文章

      网友评论

        本文标题:TCP和UDP可以监听同一个端口

        本文链接:https://www.haomeiwen.com/subject/npgfoxtx.html