2.并发服务器:一个服务器在同一时间可以处理多个客户端的请求 2.1.多进程:每有一个客户端连接创建一个进程进行通信 写一个代码
时间: 2024-09-10 16:14:02 浏览: 86
Python Flask 并发处理笔记.md
并发服务器是指服务器能够同时处理多个客户端的请求而不必等待一个请求处理完毕后再处理下一个请求。其中一种实现方式是多进程模型,即每当有新的客户端连接时,服务器会创建一个新的进程来与该客户端进行通信。以下是一个使用Python的socket编程实现的简单多进程并发服务器的代码示例:
```python
import socket
import os
from multiprocessing import Process
def handle_client(conn, addr):
print(f"Connected by {addr}")
try:
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
finally:
conn.close()
def main():
host = '127.0.0.1'
port = 65432
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((host, port))
server_socket.listen()
while True:
conn, addr = server_socket.accept()
print(f"Received connection from {addr}")
p = Process(target=handle_client, args=(conn, addr))
p.daemon = True
p.start()
if __name__ == "__main__":
main()
```
这段代码定义了一个简单的TCP服务器,它在本地的65432端口上监听。每当有新的客户端连接时,服务器都会创建一个新的进程来处理该连接。`handle_client` 函数负责与客户端进行通信,它会一直读取数据并将其回传给客户端,直到客户端关闭连接。
阅读全文