重启报端口占用
场景:~/服务/答.py 收到 bye 就先 close 客户端(服务端先关)。同事刚停掉它想重启,一起就报 [Errno 98] Address already in use,可 ss -tln 上根本没人在听那个端口。~/复现.sh 能重现这一幕。
任务:搞清楚是谁占着端口(ss -tano),然后改 答.py:bind 之前加上 SO_REUSEADDR,让它在这种情况下也能立刻起来;把服务起起来,运行 ~/check。
可操作范围:只在分给你的这台实验机上操作。可以改家目录里的任何东西,不要动系统目录。实验机只有回环接口,没有 nc / socat;连 TCP 用几行 Python(socket.socket()、connect、sendall、recv、settimeout),看 TCP 连接用 ss -tanp(-l 只看监听、-o 看计时器、-i 看内部信息);后台起服务用 setsid … &。
提交:只提交那 8 位标记本身(形如 7F3A91C2),不要提交端口号、状态名或字节数,也不要提交说明文字。大小写不限。
⚠️ 提交预算:这次实验最多可以提交错 3 次。用完需要重新开始实验——环境和答案都会变。
完成条件:提交内容与本用户、本次实验环境生成的预期结果一致。
全部评论