重启报端口占用
场景:~/服务/答.py 收到 bye 就先 close(服务端先关)。这个端口上正有一条上次运行(设了 SO_REUSEADDR)留下的 TIME-WAIT;而 答.py 没设 SO_REUSEADDR,直接起会撞 [Errno 98] Address already in use。~/复现.sh 能在演示端口上重现。
任务:给 答.py 的监听 socket 在 bind 之前加上 SO_REUSEADDR,把服务起起来,运行 ~/check(看文件里有没有那一行、端口有没有 LISTEN、ping 回不回 pong)。
可操作范围:只在分给你的这台实验机上操作。可以改家目录里的任何东西,不要动系统目录。实验机只有回环接口,没有 nc / socat;写 socket 用几行 Python(socket.socket()、bind、listen、accept、connect、sendall、recv),看监听和连接用 ss -tanp;后台起服务用 setsid … &。
提交:只提交那 8 位标记本身(形如 7F3A91C2),不要提交端口号、字节数或文字,也不要提交说明文字。大小写不限。
⚠️ 提交预算:这次实验最多可以提交错 3 次。用完需要重新开始实验——环境和答案都会变。
完成条件:提交内容与本用户、本次实验环境生成的预期结果一致。
全部评论