Python通过socketserver处理多个链接


Posted in Python onMarch 18, 2020

socket只能处理一个client连接,如果需要并发处理多个链接则需要使用socketserver,下面是代码示例以及注释

server端

import socketserver
#之前的socket只能同时处理一个客户端,当需要并发处理client发送的信息是需要使用到socketserver,下面创建一个类,继承socketserver其对应实例就有并发能力
class My_Tcp_Handler(socketserver.BaseRequestHandler):
  #下面的handler是自己定义的server与client交互的过程,所有交互过程都在此方法内部实现.方法名handle是固定的
  def handle(self):
    while True:
      try:
        #下面将收到的数据打印并且大写后发回给客户端
        self.data = self.request.recv(1024)
        print(self.data.decode(encoding="utf-8"))
        self.send_data = self.data.decode(encoding="utf-8").upper().encode(encoding="utf-8")
        self.request.sendall(self.send_data)
      except ConnectionResetError as e:
        print("一个客户端关闭了连接")
        break

#实例化socketserver
My_server = socketserver.ThreadingTCPServer(("0.0.0.0", 8888), My_Tcp_Handler) #ThreadingTCPServer是使用多线程,ForkingTCPServer是使用多进程处理并发
#启动实例
My_server.serve_forever()

下面是client端

import socket
client = socket.socket()
client.connect(("127.0.0.1", 8888))
while True:
  msg = input()
  if len(msg) == 0:
    continue
  client.send(msg.encode(encoding="utf-8")) #如果发送中文需要对其进行encode,接收也需要decode;英文前面直接加b指定类型
  client_rec = client.recv(1024).decode(encoding="utf-8")
  print("client_rec:", client_rec)
client.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
给Python初学者的一些编程技巧
Apr 03 Python
Python中关于使用模块的基础知识
May 24 Python
简析Python的闭包和装饰器
Feb 26 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
Python 自由定制表格的实现示例
Mar 20 Python
Python Django 后台管理之后台模型属性详解
Apr 25 Python
python实现密码强度校验
Mar 18 #Python
Python tcp传输代码实例解析
Mar 18 #Python
python实现用户名密码校验
Mar 18 #Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 #Python
Selenium启动Chrome时配置选项详解
Mar 18 #Python
python+selenium+Chrome options参数的使用
Mar 18 #Python
selenium WebDriverWait类等待机制的实现
Mar 18 #Python
You might like
php URL跳转代码 减少外链
2011/06/25 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python深入学习之对象的属性
2014/08/31 Python
详解Python中的多线程编程
2015/04/09 Python
python 随机森林算法及其优化详解
2019/07/11 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
用python写PDF转换器的实现
2020/10/29 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
优秀团员个人事迹材料
2014/01/29 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
作弊检讨书
2015/01/27 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
HAM-2000摩机图
2021/04/22 无线电