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和MD5实现网站挂马检测程序
Mar 13 Python
python元组操作实例解析
Sep 23 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
在python中实现对list求和及求积
Nov 14 Python
python树莓派红外反射传感器
Jan 21 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
python日期相关操作实例小结
Jun 24 Python
Pandas 缺失数据处理的实现
Nov 04 Python
tensorflow的计算图总结
Jan 12 Python
详解python with 上下文管理器
Sep 02 Python
Python requests接口测试实现代码
Sep 08 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数据浏览器
2007/03/11 PHP
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
Javascript----文件操作
2007/01/18 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
Javascript Object.extend
2010/05/18 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python中的闭包详细介绍和实例
2014/11/21 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
小学生演讲稿大全
2014/04/25 职场文书
法律专业自荐信
2014/06/03 职场文书
委托书范本
2014/09/13 职场文书
2014年政工师工作总结
2014/12/18 职场文书
护士自荐信范文
2015/03/25 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
python实现双链表
2022/05/25 Python