在 Windows 上分别在两个 terminal 中运行 python -m http.server ,神奇的是竟然可以同时运行,没有报端口占用,明明都是 8000 端口啊,自己写的代码就不行。咋回事?
1
PTLin 207 天前
Linux 上用了 SO_REUSEADDR: https://github.com/python/cpython/blob/3.12/Lib/socketserver.py#L469
|
2
paopjian 207 天前 1
|
3
sbldehanhan OP @PTLin #1 linux 上设置了这个属性,也会报:OSError: [Errno 98] Address already in use 。Linux 用不了这个属性?
|
4
sbldehanhan OP @paopjian #2 嗯,好像还真是 windows 独有。
|
5
PTLin 207 天前
@sbldehanhan 忘说了,下面还有一个 SO_REUSEPORT
|
6
zzhaolei 207 天前
SO_REUSEADDR 和 SO_REUSEPORT ,据说微信用的也是这一套,一个端口多个进程提供服务
|
7
sbldehanhan OP @PTLin #5 确实可以。Linux 上 PORT 也需要设置一下才行。
|