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 相关文章推荐
mac系统安装Python3初体验
Jan 02 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
python调用c++传递数组的实例
Feb 13 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
python读取hdfs上的parquet文件方式
Jun 06 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
python中_del_还原数据的方法
Dec 09 Python
python控制台打印log输出重复的解决方法
May 14 Python
python3读取文件指定行的三种方法
May 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
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
简单JS代码压缩器
2006/10/12 Javascript
非常不错的一个javascript 类
2006/11/07 Javascript
做网页的一些技巧
2007/02/01 Javascript
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
对web.py设置favicon.ico的方法详解
2018/12/04 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
tensorflow 变长序列存储实例
2020/01/20 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
运动会通讯稿500字
2014/02/20 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
毕业生求职信范文
2014/06/29 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
导游词之吉林花园山
2019/10/17 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang