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模拟登陆类
Mar 29 Python
python安装以及IDE的配置教程
Apr 29 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
Django框架使用mysql视图操作示例
May 15 Python
在Python中COM口的调用方法
Jul 03 Python
python实现批量nii文件转换为png图像
Jul 18 Python
python函数的作用域及关键字详解
Aug 20 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
详细介绍python类及类的用法
May 31 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 Python
使用Python开发冰球小游戏
Apr 30 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python 定时修改数据库的示例代码
2018/04/08 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
物流专业大学应届生求职信
2013/11/03 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
物控部经理职务说明书
2014/02/25 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
放射科岗位职责
2015/02/14 职场文书
保研推荐信范文
2015/03/25 职场文书
python开发制作好看的时钟效果
2022/05/02 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers