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

使用Python通过socket实现多线程服务器

发布时间:2023-12-26 00:49:14

Python通过socket模块可以实现多线程服务器,以下是一个简单的使用例子:

import socket
import threading

def handle_client(client_socket):
    # 接收客户端发来的数据
    request = client_socket.recv(1024)
    print('Received:', request)
    
    # 向客户端发送响应
    response = 'Hello from server'
    client_socket.send(response.encode('utf-8'))
    
    # 关闭客户端连接
    client_socket.close()

def main():
    # 创建服务器的socket对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 绑定服务器的IP和端口号
    server_address = ('', 12345)
    server_socket.bind(server_address)
    
    # 监听连接请求
    server_socket.listen(5)
    print('Server is ready and listening...')
    
    while True:
        # 接受客户端的连接请求
        client_socket, client_address = server_socket.accept()
        
        # 创建线程处理客户端请求
        client_thread = threading.Thread(target=handle_client, args=(client_socket,))
        client_thread.start()

if __name__ == '__main__':
    main()

以上代码实现了一个简单的多线程服务器。在main函数中,首先创建了一个服务器的socket对象,然后通过bind方法绑定服务器的IP和端口号。接下来,通过listen方法监听连接请求。然后进入一个循环,不断接受客户端的连接请求。

当有客户端连接时,创建一个新的线程用于处理该客户端的请求。handle_client函数接收客户端发送的数据,并向客户端发送响应。最后关闭客户端连接。

通过多线程的方式处理客户端请求,可以高效地处理多个客户端的并发请求。每个客户端连接都会在不同的线程中进行处理,互不干扰。