利用 python 的 socket 库编写简单的 tcp 服务器
流程
- client 三次握手与 server 建立连接
- server 阻塞读,等待 client 写
- server 处理
- client 阻塞读,等待 server 处理完后写
- server 写数据
- 会话结束
问题:读的一方怎么确定对方发送多少数据?
-
方法一:已知数据量最大值,直接读取最大数据量,比如
sock.recv(2048)
-
方法二:数据量未知,有多种实现方法,比如 ① 约定在数据最开始部分记录长度、② 单向的数据传输成对儿出现,第一次发送长度第二次传输数据 等等方法
参考
沉舟侧畔千帆过,病树前头万木春。