Python 网络编程与套接字全解析
1. UDP 消息客户端
以下是一个向服务器发送消息的 UDP 客户端示例:
# UDP message client import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(b"Hello World", ("", 10000)) resp, addr = s.recvfrom(256) print(resp) s.sendto(b"Spam", ("", 10000)) resp, addr = s.recvfrom(256) print(resp) s.close()2. 注意事项
- 平台兼容性:并非所有常量和套接字选项在所有平台上都可用。如果追求可移植性,应仅依赖于主要资料(如相关网络编程书籍)中记录的选项。
- 缺失的系统调用:套接字模块中显著缺少
recvmsg()和sendmsg()系统调用,这些常用于处理辅助数据和与数据包头部、路由等相关的高级网络选项。若需要这些功能,必须安装第三方模块,如 PyXAPI(http://pypi.python.org/pypi/PyXAPI)。 - 非阻塞操作与超时操作的区别:非阻塞套接字操作和涉及超时的操作有细微差别。在非阻塞模式下使用套接字函数时,如果操作会