补全:测 echo 服务端
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 (每道题开头都有同一段:上面的内存版 TCP。) 贯穿全条的内存版 TCP(判题机不联网;接口和真 socket 一样,真机上把它换成 socke
补全:测粘包被正确拆开
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.m
补全:测协议回复
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 本节的最小键值协议: req("PUT", "k", "v") → b"PU
补全:测「对面关闭」被处理
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 (每道题开头都有同一段:上面的内存版 TCP。) 贯穿全条的内存版 TCP(判题机不联网;接口和真 socket 一样,真机上把它换成 socke
真机上第一句话
在真机上测一个你写的 TCP 服务,最直接的「客户端」是【0】。
从 ss 的一行认东西
ss -tanp 的一行 LISTEN 长这样。把状态、监听地址、端口、pid 拆出来: line = "LISTEN 0 5 127.0.0.1:8123 0.0.0.0:* users:((\"python3\&qu
把服务起起来
场景:~/服务/回声.py 是一个完整的 TCP 回声服务(端口在 ~/服务/配置.txt),可它还没跑起来。 任务:把它起起来、留在后台,然后运行 ~/check(它会看端口有没有 LISTEN,再连上去发一条 ping 看回不回 pin
它在听哪个端口
场景:同事起了一个 TCP 服务(进程名里带「回声」),说端口在 ~/服务/配置.txt——按那个端口连立刻被拒绝,配置八成是旧的。对照表列了八个数。 任务:用 ss -tln(-p 还能看到进程)找出它实际在听的端口,到对照表里查那个数对
问它一句拿回答
场景:本机某端口上有一个 TCP 服务(端口在说明里),你发一行给它,它回一个词。对照表列了八个词。 任务:写几行 Python 连上去、发一行、收回信、打印出来,到对照表里查那个词对应的标记。 可操作范围:只在分给你的这台实验机上操作。可
有几个客户端连着
场景:本机某端口上有一个 TCP 服务(端口在说明里),后台有几个客户端正连着它不放。对照表列了八个数。 任务:用 ss -tan 数出这个服务上已建立的连接有几条——只数服务端那一头(Local Address 是它端口的那些 ESTAB