在 socket_recv
函数中实现多线程应用可以通过创建多个线程来同时接收数据,从而提高数据接收的效率。以下是一个简单的示例代码:
import socket
import threading
def socket_recv(client_socket):
while True:
data = client_socket.recv(1024)
if not data:
break
print(f"Received: {data.decode()}")
def main():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(5)
while True:
client_socket, client_address = server_socket.accept()
print(f"Connection from {client_address}")
# 创建一个新的线程来处理客户端数据接收
recv_thread = threading.Thread(target=socket_recv, args=(client_socket,))
recv_thread.start()
if __name__ == "__main__":
main()
在上面的示例中,socket_recv
函数用于接收客户端发送的数据,并创建一个新的线程来处理数据接收的过程。在 main
函数中,通过循环接受客户端连接,并为每个客户端连接创建一个新的线程来处理数据接收。这样可以实现多个客户端同时进行数据传输,提高系统的并发处理能力。