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运算π的值深入Python中科学计算的实现
Apr 17 Python
python图像处理之反色实现方法
May 30 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
python实现猜拳小游戏
Apr 05 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
pytorch 实现变分自动编码器的操作
May 24 Python
python编程项目中线上问题排查与解决
Nov 01 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 MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
php探针不显示内存解决方法
2019/09/17 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
python字符串对其居中显示的方法
2015/07/11 Python
python 爬取微信文章
2016/01/30 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
万年牢教学反思
2014/02/15 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
公务员考察材料
2014/12/23 职场文书
护士个人年度总结范文
2015/02/13 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Golang解析JSON对象
2022/04/30 Golang