Python实现的多线程服务器
发布时间:2023-12-27 13:04:05
Python提供了多线程编程的支持,可以通过threading模块来实现多线程服务器。下面是一个简单的多线程服务器的示例代码:
import socket
import threading
def handle_client(client_socket):
# 处理客户端请求的函数
while True:
# 接收客户端数据
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
# 处理客户端数据
response = 'Server response: ' + data
# 发送响应给客户端
client_socket.sendall(response.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
def run_server():
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 9999))
server_socket.listen(5)
print("Server is listening on port 9999...")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print("Accepted connection from {}:{}".format(client_address[0], client_address[1]))
# 创建线程处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
# 启动线程
client_thread.start()
if __name__ == '__main__':
run_server()
上述代码实现了一个简单的多线程服务器。服务器通过监听端口9999来接收客户端连接,每个连接都会创建一个新的线程来处理。handle_client函数是处理客户端请求的函数,它会一直接收客户端发送的数据,并向客户端发送响应,直到客户端断开连接。
在run_server函数中,创建了一个套接字,并绑定到localhost的9999端口。然后使用一个无限循环来接受客户端连接,对于每个客户端连接,都创建一个新的线程来处理。每个线程执行handle_client函数来处理客户端请求。最后,在主线程中调用run_server函数来启动服务器。
这是一个简单的多线程服务器的实现例子,可以通过多线程来处理多个客户端的请求,提高服务器的并发性能。
