如何用python设计一个tcp server多线程接收数据,同时显示数据
时间: 2023-05-23 19:02:42 浏览: 290
可以使用Python的标准库socket和threading实现一个TCP服务器的多线程接收数据并同时显示数据。首先,需要创建一个Socket对象并绑定到本地主机和端口号上,然后使用listen()方法来开始监听客户端的连接。接着,可以使用accept()方法接受客户端的连接,并创建一个新的线程来处理每个连接。在每个线程中,可以使用recv()方法读取客户端发送的数据,同时将读取到的数据打印出来。
下面是一段示例代码:
```python
import socket
import threading
def handle_client(client_socket, address):
print("[*] Accepted connection from: %s:%d" % (address[0], address[1]))
while True:
data = client_socket.recv(1024)
if not data:
break
print("[*] Received data: %s" % data.decode())
client_socket.close()
print("[*] Connection closed: %s:%d" % (address[0], address[1]))
def start_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 9999))
server_socket.listen(5)
print("[*] Listening on %s:%d" % ('localhost', 9999))
while True:
client_socket, address = server_socket.accept()
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
if __name__ == '__main__':
start_server()
```
在这个例子中,我们将服务器绑定到本地主机和端口号9999上,然后开始监听连接。当客户端连接到服务器时,我们为每个连接创建一个新的线程,并在其中循环读取客户端发送的数据并打印。最后,当客户端断开连接时,线程退出并关闭客户端套接字。
阅读全文