python如何使用socketserver模块实现并发聊天


Posted in Python onDecember 14, 2019

这篇文章主要介绍了python如何使用socketserver模块实现并发聊天,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

利用socketserver模块很容易实现并发功能,下面的server.py和client.py程序实现了这一功能.

代码如下

#server.pyimport socketserver
class MyServer(socketserver.BaseRequestHandler):
  def handle(self):
    while True:
      conn = self.request
      while True:
        data = conn.recv(1024)
        if str(data,'utf8') == 'q':
          break
        print(str(data,'utf8'))
        inp = input('>>>')
        conn.send(bytes(inp,'utf8'))
      conn.close()
if __name__ == '__main__':
  server = socketserver.ThreadingTCPServer(('127.0.0.1',8000),MyServer)
  server.serve_forever()
#client.py
import socket
sk = socket.socket()
address = ('127.0.0.1',8000)
sk.connect(address)
while True:
  inp = input('>>>')
  if inp == 'q':
    print('Bye-bye')
    break
  sk.send(bytes(inp,'utf8'))
  data = sk.recv(1024)
  print(str(data,'utf8'))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中转换角度为弧度的radians()方法
May 18 Python
python中的代码编码格式转换问题
Jun 10 Python
Windows下为Python安装Matplotlib模块
Nov 06 Python
python生成词云的实现方法(推荐)
Jun 13 Python
git进行版本控制心得详谈
Dec 10 Python
Python机器学习之SVM支持向量机
Dec 27 Python
Python实现转换图片背景颜色代码
Apr 30 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Django跨域请求原理及实现代码
Nov 14 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 Python
python和anaconda的区别
May 06 Python
python paramiko远程服务器终端操作过程解析
Dec 14 #Python
安装PyInstaller失败问题解决
Dec 14 #Python
django自定义模板标签过程解析
Dec 14 #Python
django序列化serializers过程解析
Dec 14 #Python
Python搭建HTTP服务过程图解
Dec 14 #Python
Pyqt5自适应布局实例
Dec 13 #Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 #Python
You might like
PHP开发中常用的字符串操作函数
2011/02/08 PHP
mysql总结之explain
2012/02/27 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
详解Python中的各种函数的使用
2015/05/24 Python
Python实现计算最小编辑距离
2016/03/17 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
大学生职业生涯规划书模板
2014/01/03 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
低碳环保口号
2014/06/12 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
出差报告范文
2014/11/06 职场文书
材料员岗位职责
2015/02/10 职场文书
公积金贷款承诺书
2015/04/30 职场文书
监守自盗观后感
2015/06/10 职场文书
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python