需求
1.创建一个TCP服务器接收服务端发送的信息并给予答复
2.以多线程方式实现接收客户端信息
3.间客户端发送的信息解码输出

思路分析
1.创建一个TCP客户端套接字
2.写一个接收消息的方法,可以接收客户端消息并解码输出
3.客户端被动监听,每有一个客户端连接就创建一个子线程执行接收消息方法

代码实现

# 导入模块
import socket
import threading# 接收消息
def recv(client_socket, ip_port):while True:client_text = client_socket.recv(1024)# 如果接收的消息长度不为0,则将其解码输出if client_text:print("[客户端消息]", ip_port, ":", client_text.decode("gbk"))# 给客户端响应client_socket.send("收到\n".encode())# 当客户端断开连接时,会一直发送''空字符串,所以长度为0已下线else:print("客户端", ip_port, "已下线")client_socket.close()break# 程序主入口
def main():# 创建TCP套接字tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口复用tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口tcp_socket.bind(("", 8080))# 设置为被动监听状态,128表示最大连接数tcp_socket.listen(128)while True:# 等待客户端连接client_socket, ip_port = tcp_socket.accept()print("[新客户端]:", ip_port, "已连接")# 有客户端连接后,创建一个线程将客户端套接字,IP端口传入recv函数,t1 = threading.Thread(target=recv, args=(client_socket, ip_port))# 设置线程守护t1.setDaemon(True)# 启动线程t1.start()if __name__ == '__main__':main()

执行结果
接收客户端消息

响应客户端消息

客户端下线后识别

Python高级——用多线程实现TCP服务端相关推荐

  1. Python基于socket实现的TCP服务端

    ''' 基于socket实现的TCP服务端 '''import socket # 建立socket对象 server_socket=socket.socket(socket.AF_INET,socke ...

  2. python学习随堂笔记—TCP服务端与客户端

    思想: 1. 客户端 向服务端 发起连接 2. 服务端 接到请求,双方建立连接 3. 客户端 向 服务端发消息 4. 服务端 应答客户端 5. 服务端 与客户端循环读写操作 6. 操作完成之后客户端发 ...

  3. Qt 多线程TCP服务端一键关闭所有客户端

    Qt 多线程TCP服务端一键关闭所有客户端 任务描述: 实现多线程TCP服务端一键关闭所有客户端的连接. 解决过程: 1.Qt的服务端提供了close的功能,但是只用来不响应新接入的客户端. 手册中是 ...

  4. Qt多线程 TCP 服务端

    Qt实现 多线程 TCP 服务端 因为项目中要用到TCP客户端的并发处理,所以TCP服务端用多线程去实现是必要的.于是花了一大早上的时间写了一各Demo 如图: 主要关键代码: 关于线程的处理.关于线 ...

  5. Qt:Qt实现Winsock网络编程—TCP服务端和客户端通信(多线程)

    Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 前言 感觉Winsock网络编程的api其实和Linux下网络编程的api非常像,其实和其他编程语言的网络编程都差不太多.博主用Qt ...

  6. 超详细c语言简化tcp通信接口(多线程实现一个服务端处理多个客户端服务)

    超详细c语言tcp通信接口 1.可下载源码(客户端 || 服务端通信) 2.说明 3.接口代码 4.客户端通信main_client_demo.c 5.服务端通信main_server_demo.c ...

  7. Python基于socket实现的多任务版TCP服务端

    ''' 基于socket实现的多任务版TCP服务端 ''' import socket import threadingdef client_task(client_socket,ip_port):p ...

  8. pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端

    本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器soc ...

  9. MFC:Socket编程—TCP服务端和多个客户端通信

    前言 MFC是微软基础类库,于 C++ 对于 C语言来说,MFC对于window API ,MFC 就相当于C++,window API 相当于C.MFC 封装了 window API 使用起来更加的 ...

最新文章

  1. 计算程序运行时间(time_t, clock_t)
  2. 一种全自动的牙齿CBCT三维个体识别和分割方法
  3. 一篇了解NLP中的注意力机制
  4. [WinAPI] API 5 [遍历驱动器并获取驱动器属性]
  5. 认识 react 的钩子函数
  6. 使用Python批量随机化文件名
  7. 喝下硅谷创业毒药后的 13 年
  8. 三校生计算机word基础知识,江西省2017年三校生计算机高考试卷
  9. 【机器学习】Python秘密武器之Numpy
  10. App应用最有效的变现方式,还能同时提升留存!
  11. IT零起点转FICO学习路线(转)
  12. wifi mesh组网
  13. p-sum结构解释+代码 二叉区间树
  14. 中科院计算所陈云霁:深度学习芯片剩下的只是工程问题,我们要起航探索新方向
  15. 计算机网络(六)应用层
  16. 安卓修改电池容量教程_安卓手机用re管理器修改电池信息增加待机时间
  17. ShuffleNetv2论文详解
  18. [Linux]关于网卡配置文件
  19. hexo博客如何绑定个人域名
  20. 【DL】基于pytorch搭建BP神经网络/人工神经网络/多层感知机/全连接神经网络的鸢尾花分类

热门文章

  1. javascript-练习-数组数据存li中
  2. 美的物联平台的云上实践与应用
  3. AndroidMainfest.xml具体解释——lt;activitygt;
  4. iOS 关于真机和模拟器framework合并
  5. C++ STL标准模板库(queue)
  6. Cracking the Coding Interview(Stacks and Queues)
  7. DreamFactory - 第3章生成数据库支持的API
  8. Hibernate初学者教程
  9. 七牛云图片--Java文档
  10. Fedora安装Docker