Python中的网络编程是指使用Python语言进行网络通信的编程。Python提供了丰富的标准库支持网络编程,其中最常用的模块是socket。
使用Python进行网络编程主要包括以下步骤:
-
创建socket对象:可以是SOCK_STREAM(流式套接字TCP)或SOCK_DGRAM(数据报套接字UDP)类型;
-
绑定IP地址和端口号:使用bind()方法绑定;
-
监听连接请求:使用listen()方法监听连接请求(仅在SOCK_STREAM类型情况下);
-
接受连接请求:使用accept()方法接受连接请求(仅在SOCK_STREAM类型情况下);
-
发送和接收数据:使用send()/sendall()方法发送数据,使用recv()方法接收数据。
-
关闭socket:使用close()方法关闭socket。
以下是一个简单的Python TCP服务器和客户端示例:
服务器端代码:
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(('localhost', 8080))
# 监听连接请求
server_socket.listen(1)
while True:
# 接受连接请求
client_socket, address = server_socket.accept()
print('Connected by', address)
# 接收数据并回传
data = client_socket.recv(1024)
client_socket.sendall(data)
# 关闭socket
client_socket.close()
客户端代码:
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('localhost', 8080))
# 发送数据
client_socket.sendall(b'Hello, World!')
# 接收数据
data = client_socket.recv(1024)
print('Received', repr(data.decode()))
# 关闭socket
client_socket.close()
这里的示例是一个简单的echo服务器,它接收客户端发送的消息并返回。