Python的网络编程
Python中如何进行网络编程?
Python的网络编程可以基于内置的socket库实现。以下是基于socket库实现的简单TCP客户端和服务器示例代码:
TCP服务器代码:
“`python
import socket# 创建TCP/IP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定服务器套接字到一个端口
server_address = (‘localhost’, 8000)
server_socket.bind(server_address)# 监听连接请求
server_socket.listen(1)print(‘服务器已启动,等待连接…’)
while True:
# 等待连接请求
client_socket, client_address = server_socket.accept()
print(‘与客户端 %s:%s 连接已建立’ % client_address)try:
# 接收消息
data = client_socket.recv(1024)
if data:
print(‘接收到来自客户端 %s:%s 的消息:%s’ % (client_address[0], client_address[1], data.decode()))
else:
print(‘客户端 %s:%s 已断开连接’ % client_address)
break# 发送响应消息
message = ‘你好,客户端 %s:%s’ % client_address
client_socket.sendall(message.encode())
finally:
# 关闭客户端套接字连接
client_socket.close()
“`TCP客户端代码:
“`python
import socket# 创建TCP/IP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接服务器
server_address = (‘localhost’, 8000)
print(‘连接到服务器 %s:%s’ % server_address)
client_socket.connect(server_address)try:
# 发送消息
message = ‘你好,服务器’
client_socket.sendall(message.encode())# 接收响应消息
data = client_socket.recv(1024)
print(‘接收到来自服务器的消息:%s’ % data.decode())
finally:
# 关闭套接字连接
client_socket.close()
“`在以上代码中,TCP服务器通过socket()函数创建一个TCP/IP套接字,并通过bind()函数将服务器套接字绑定到一个端口上,然后通过listen()函数监听连接请求。当客户端连接请求到达时,通过accept()函数接受连接,并返回一个新的套接字以处理客户端请求。服务器通过recv()函数接收来自客户端的消息,并通过sendall()函数给客户端响应消息。最后,服务器通过close()函数关闭连接并释放资源。
TCP客户端通过socket()函数创建一个TCP/IP套接字,并使用connect()函数连接到服务器。然后客户端通过sendall()函数发送一条消息给服务器,并通过recv()函数接收服务器响应。最后,客户端通过close()函数关闭连接。
2023年05月02日 12:17