今天有人问了个python的小问题,python -m http.server 同时启动2个,监听了相同的端口,但是不会报错。

这个情况其实不止Linux,Windows也是一样的,看一下python的源码:

https://github.com/python/cpython/blob/3.12/Lib/socketserver.py#L469

也就是在Linux下使用了 SO_REUSEADDR 和 SO_REUSEPORT ,来实现一个端口多个进程提供服务。

具体解释可以看: https://stackoverflow.com/questions/51090637/running-a-python-web-server-twice-on-the-same-port-on-windows-no-port-already


扫码手机观看或分享: