线程 6.TCP服务器端框架
2021/12/15 6:17:18
本文主要是介绍线程 6.TCP服务器端框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
TCP服务器端框架
使用多线程实现同时接收多个客户端的多条信息 1.支持多个客户端连接 2.支持不同客户端同时收发信息 3.服务器关闭服务后子线程随之结束 需求: 1.指定端口监听 2.地址可重用 3.同时接收多个客户端连接 4.同时接收多个客户端收发信息 5.服务器关闭后子线程也随之结束 循环实现:重复执行接收信息和接收客户端连接 多线程实现:每有一个客户端连接就创建一个线程调用接收信息
import socket import threading # 接收客户端信息 def recv_msg(client_socket,client_addr): while True: recv_data = client_socket.recv(1024) # 判断客户端是否在线 if not recv_data: break # 解析并输出数据 recv_text = recv_data.decode('GBK') print(f'收到来自:{client_addr} 的信息:{recv_text}') # 关闭连接 client_socket.close() print(f'客户端:{client_addr} 已断开连接') # 创建socket tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 设置地址重用 tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True) # 绑定端口 addr_local = ('',8080) tcp_server_socket.bind(addr_local) # 开启被动监听模式 tcp_server_socket.listen(128) # 等待客户端连接 while True: client_socket,client_addr = tcp_server_socket.accept() print(f'客户端:{client_addr} 已连接') # 创建线程,同时接收多个客户端的连接 thread_client = threading.Thread(target=recv_msg,args=(client_socket,client_addr)) # 设置线程守护 thread_client.setDaemon(True) # 启动子线程 thread_client.start()
这篇关于线程 6.TCP服务器端框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享