Python网络编程——TCP编程
CP 编程是实现网络通信的核心技术之一,尤其在需要可靠数据传输的场景中非常重要。
- 面向连接:通信双方必须先建立连接(三次握手),结束后要断开连接(四次挥手)
- 可靠性:通过确认应答(ACK)、超时重传、滑动窗口、流量控制、拥塞控制等机制来保证数据可靠有序地送达
- 流式传输:数据没有固定的消息边界,可能会发生"粘包"现象
为了直观对比 TCP 和 UDP 的一些关键区别,请看下表:
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接 (三次握手) 1 4 | 无连接 3 |
可靠性 | 可靠 (确认、重传、排序等) 1 4 | 不可靠 3 |
传输形式 | 字节流 (可能粘包) 1 | 数据报文 (有边界) 3 |
速度 | 相对较慢 | 相对较快 |
应用场景 | 文件传输、邮件、网页浏览等需要高可靠性的场景 | 视频流、DNS查询、语音通话等实时性要求高的场景 |
服务器
客户端:
在 VSCode 中分别创建
server.py
和client.py
文件并粘贴代码。首先运行 服务器端:在终端中执行
python server.py
。你会看到[*] 服务器监听在 127.0.0.1:9999
。然后运行 客户端:打开另一个终端,执行
python client.py
。你会看到[*] 已连接到服务器 127.0.0.1:9999
,并可以输入消息。在客户端输入消息后,服务器端会收到并回复,客户端会打印出服务器的回复。
输入
quit
可以退出客户端。使用Ctrl+C
可以终止服务器端。