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编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
python 反向输出字符串的方法
Jul 16 Python
Python远程视频监控程序的实例代码
May 05 Python
python覆盖写入,追加写入的实例
Jun 26 Python
python pandas生成时间列表
Jun 29 Python
python模块导入的方法
Oct 24 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
python的help函数如何使用
Jun 11 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 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
基于xcache的配置与使用详解
2013/06/18 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
PHP实现微信退款功能
2018/10/02 PHP
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
改进Django中的表单的简单方法
2015/07/17 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
Python解析树及树的遍历
2016/02/03 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
答题辅助python代码实现
2018/01/16 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
WxPython实现无边框界面
2019/11/18 Python
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
《植树问题》教学反思
2016/03/03 职场文书
六年级作文之关于梦
2019/10/22 职场文书
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫