TCP和UDP可以绑定同样的端口吗?

        先说答案,可以TCP和UDP属于传输层的两个不同传输协议,可以说是两个完全独立的模块,因为传输层的端口号的作用,仅仅是为了区分同一台主机上的不同应用程序。其实这个问题就好比两个快递驿站,一个中通一个圆通,取件码有可能一样吗,那理论上肯定是可以的。

        那么问题升级,指定协议,就在TCP中,相同的端口号呢,多个进程是否可以重复使用?

        其实问题的本质就只用抓住一个,bind()的时候靠的是什么?套接字对吧,那么在TCP和UDP绑定端口时也是一样的,只需要分辩他的端口号和IP组成的套接字是否被占用。
        总结为以下情况:
        同IP,同端口(如192.168.1.1:8080和192.168.168.1.1:8080) 这个时候会返回错误显示“Address already in use”
        同IP,不同端口(如192.168.1.1:8080和192.168.168.1.1:8090)正常绑定
        不同IP,同端口(如192.168.1.1:8080和192.168.168.1.2:8080)正常绑定
        不同IP,不同端口(如192.168.1.1:8080和192.168.168.1.2:8090)这个是最普通的情况了,当然是可以绑定成功的
        不过这里有种特殊情况,0.0.0.0:8080和192.168.1.1:8080,这里也是会报错“Address already in use”,因为0.0.0.0是一个特殊地址,这里省去不知道的朋友去GPT了

        还有一个问题,上面说的同IP同端口就一定不能绑定吗?
        其实也是可以的,GPT回答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员行者孙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值