Socket 与 TCP与UDP 基础
Python 文件、网络与系统编程#Python全栈#第四阶段#Python 文件、网络与系统编程#Socket 与 TCP与UDP 基础约 598 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
Socket、IP 地址、端口与协议是什么关系?
追问 一个程序监听哪个地址,如何影响本机、内网与外网访问?
TCP 与 UDP 的传输特性有什么区别?
追问 可靠字节流、数据报边界与业务层重试如何影响程序设计?
TCP 服务端的 bind、listen 与 accept 分别做什么?
追问 监听 Socket 与 accept 返回的连接 Socket 有什么区别?
TCP 客户端通常如何连接、发送、接收与关闭?
追问 连接失败、读写超时和对端关闭分别应如何处理?
一次 send() 是否保证发送全部数据?
追问
sendall() 解决什么问题?发送成功是否证明对端完成业务处理?为什么一次 recv() 不一定对应一条完整业务消息?
追问 长度前缀、分隔符与固定长度分别怎样设计消息边界?
Socket 接收到 b'' 通常表示什么?
追问 它与超时、暂时无数据以及空业务消息有什么区别?
跨多次 recv 解析文本时,为什么要注意多字节字符?
追问 在字节层完成消息拼装与增量解码分别适合什么情况?
绑定 127.0.0.1 与 0.0.0.0 有什么差异?
追问 为什么 0.0.0.0 通常不是远端客户端应该直接使用的目标地址?还需检查哪些访问策略?
测试服务报“地址已被使用”,你会怎样处理?
追问 现有监听进程、绑定地址、端口与套接字选项如何核查?为什么不能看到报错就杀掉未知进程?
TCP 数据传输与消息边界可参考 Python 官方 Socket 编程指南,通过分段发送的测试验证。