欢迎访问宙启技术站
智能推送

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函数来启动服务器。

这是一个简单的多线程服务器的实现例子,可以通过多线程来处理多个客户端的请求,提高服务器的并发性能。