Python网络编程:服务器与客户端基础代码

0 下载量 157 浏览量 更新于2024-08-28 收藏 134KB PDF 举报
在Python网络编程中,本文档提供了一组常用的代码片段,主要涉及服务器端和客户端的通信。让我们详细解读这些代码并理解其功能。 服务器端代码: 这部分代码定义了一个基于TCP(传输控制协议)的服务器,监听本地(127.0.0.1)的8001端口。首先,通过`socket.socket(socket.AF_INET, socket.SOCK_STREAM)`创建一个套接字对象。`AF_INET`表示使用IPv4地址族,`SOCK_STREAM`代表面向连接的TCP服务。然后,调用`bind()`方法绑定服务器地址和端口,设置为监听模式,`listen(5)`指定最多可以同时处理5个连接请求。在无限循环中,通过`accept()`函数等待客户端的连接请求,并在接收到连接后打印提示信息。 服务器的核心部分是`while True`循环内的代码。首先检查连接是否超时,然后尝试从客户端接收数据,`connection.recv(1024)`获取长度为1024字节的数据。根据接收到的不同命令("1", "2", 或 "3"),服务器发送相应的响应。如果命令未知或接收数据超过超时时间,将发送默认消息并关闭连接。 客户端代码: 客户端使用相同的`socket.socket(socket.AF_INET, socket.SOCK_STREAM)`创建一个套接字,连接到服务器的同一地址和端口。然后,客户端进入一个无限循环,提示用户输入命令,如"1", "2", 或 "3"。用户输入后,通过`send()`方法将数据发送到服务器,并等待服务器的响应,直到接收到"3"命令才退出循环。最后,客户端关闭套接字。 要实现交互,需在两个独立的IDLE窗口中运行这两个代码段,服务器先启动,显示"waiting client connection...",然后客户端连接并输入命令。这种设计用于演示基本的TCP客户端-服务器通信模型,包括客户端连接、数据发送与接收以及断开连接。 通过这些代码,我们可以学习到Python中的套接字编程基础,包括如何创建、绑定、监听和处理客户端连接,以及如何进行数据的收发。此外,还涉及到异常处理,如设置超时和处理未知命令。这对于理解和开发网络应用至关重要。