读一条带长度前缀的消息

场景:本机某端口上的服务,连上来就发一条长度前缀格式的消息(前 4 字节大端是长度,后面是内容),然后关掉。对照表列了八个词(内容)。 任务:连上去,先读 4 字节算出长度,再按长度读完内容,把内容解出来,到对照表里查它对应的标记。 可操作

开始练习 →

读到对面关闭为止

场景:本机某端口上的服务,连上来就连发好几段字节、然后关掉连接。对照表列了八个数(总字节数)。 任务:连上去,一直 recv 到对面关闭(recv 交回 b"")为止,把收到的所有字节数加起来,到对照表里查那个数对应的标

开始练习 →

写一个请求-响应客户端

场景:本机某端口上有一个按行应答的服务:你发一行 GET 名字,它回一行值。 任务:写 ~/问.py,用法 python3 ~/问.py 端口 名字:连上、发 GET 名字\n、读回一行、打印(去掉换行);连不上就打印「拒绝」;都正常退出(

开始练习 →

交付:一个回声服务

场景:要交付一个 TCP 回声服务和它的启动脚本,端口在说明里。 任务:写 ~/服务/答.py(SO_REUSEADDR + bind 端口 + listen + 循环 accept;每条连接把收到的原样回去,直到对方关闭再 close 这

开始练习 →

连不上先查什么

客户端连一个本机 TCP 服务「被拒绝」,第一步该查【0】。

开始练习 →

四种故障各是什么

把四种「连不上/收不对」和它们的样子配对,按线索顺序打印: fault = { "服务没起或端口错": "A", "bind 了没 listen": "B

开始练习 →

服务在别的端口

场景:~/客户端.py 连本机的服务每次都「拒绝」,服务进程确实在跑(名字里带「回声」),只是不在客户端以为的端口上。对照表列了八个数。 任务:用 ss -tlnp 找出服务实际在听的端口,到对照表里查那个数对应的标记。 可操作范围:只在分

开始练习 →

把客户端的端口改对

场景:同上——~/客户端.py 连错了端口。服务在听、按行回 pong。 任务:找出服务实际的端口,把 ~/客户端.py 里的 PORT 改对,让它跑出「收到: pong」。修好运行 ~/check。 可操作范围:只在分给你的这台实验机上操

开始练习 →

忘了 listen

场景:~/服务/答.py bind 了端口,可客户端连上去总是「拒绝」。ss 里这个端口连 LISTEN 都没有——它 bind 之后忘了 listen(和 accept 循环)。 任务:把 listen 和 accept 循环补上(收到什

开始练习 →

一次 recv 当一条消息

场景:~/客户端.py 连上服务后,服务会连发三条长度前缀消息。客户端图省事,recv(4096) 一次就当成一条,于是数错了。对照表列了八个数。 任务:改客户端,按长度前缀正确拆包,数出一共几条消息,到对照表里查那个数对应的标记。 可操作

开始练习 →