Python 通信技术全解析
1. 通信主题概述
通信领域涵盖了多个不同方面,这里主要探讨三个主题:
- 串行通信(Serial Communications):即常见的 COM 端口通信。
- 远程访问服务(Remote Access Services):用于配置、建立和断开与其他计算机的拨号连接的 Windows 功能集合。
- 套接字(Sockets):TCP/IP 协议的编程接口,许多互联网协议如 FTP 和 HTTP 都构建在其之上。
2. 串行通信
2.1 串行端口基础
串行端口自 PC 诞生起就是标准配置,广泛应用于各种 PC 配件、科学和医疗设备,如调制解调器和鼠标。近年来,红外端口也逐渐流行,本质上它就是无线的串行端口。
不同操作系统对 COM 端口的访问方式不同:
| 操作系统 | 访问方式 |
| ---- | ---- |
| DOS | 需使用非常底层的接口,通过特定范围的字节(如 COM1 从 0x03F8 开始)获取端口信息,编程复杂且痛苦。 |
| Windows 3.1 | 提供了更高级的 API,有缓冲层,如 ReadComm 和 WriteComm 函数,隔离了硬件操作,还支持事件驱动通信。 |
| Windows NT | 采用文件式接口,使用与普通文件相同的函数来打开、读取和写入 COM 端口,同时防止程序直接访问串行端口。 |
2.2 时序问题
串行 I/O 与文件操作不同,文件在磁盘上是一次性存在的,而串行数据的到达是有时间间隔的。例如,在 9600 波特率的端口上