python socket多线程 案例
时间: 2023-07-27 21:06:44 浏览: 115
Python多线程Socket程序例子
当涉及到使用 Python 的 socket 模块进行多线程编程时,我们可以创建一个服务器,该服务器可以同时处理多个客户端的连接请求。下面是一个简单的示例代码:
```python
import socket
import threading
def handle_client(client_socket):
# 处理客户端请求的函数
request = client_socket.recv(1024) # 接收客户端发送的数据
response = "Hello, client!" # 处理客户端请求,并生成响应数据
client_socket.send(response.encode()) # 发送响应数据给客户端
client_socket.close() # 关闭客户端连接
def main():
# 创建服务器套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888)) # 绑定服务器地址和端口
server_socket.listen(5) # 监听客户端连接请求
print("Server started. Listening on port 8888...")
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__':
main()
```
在这个例子中,我们首先创建了一个 `handle_client` 函数来处理客户端请求。然后,在 `main` 函数中,我们创建了一个服务器套接字,并绑定到本地地址和端口。接着,我们使用一个循环来接收客户端的连接请求。每当有新的连接请求到达时,我们创建一个新的线程来处理该客户端的请求,并继续监听其他客户端的连接请求。
需要注意的是,这只是一个简单的示例,实际中可能需要更多的错误处理和线程管理机制。另外,由于涉及到多线程编程,还需要注意线程安全性和资源共享的问题。
阅读全文