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登录QQ邮箱发信的实现代码
Feb 10 Python
Python Web服务器Tornado使用小结
May 06 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
JavaScript实现一维数组转化为二维数组
Apr 17 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
Python功能点实现:函数级/代码块级计时器
Jan 02 Python
Python八皇后问题解答过程详解
Jul 29 Python
Python实现直播推流效果
Nov 26 Python
Python pandas库中的isnull()详解
Dec 26 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
一篇文章搞懂python的转义字符及用法
Sep 03 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遍历目录viewDir函数
2009/12/15 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
Python 可爱的大小写
2008/09/06 Python
Python中的exec、eval使用实例
2014/09/23 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
Python入门篇之条件、循环
2014/10/17 Python
Python实现线程池代码分享
2015/06/21 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
django 模型字段设置默认值代码
2020/07/15 Python
Python如何合并多个字典或映射
2020/07/24 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
数据库的约束含义
2012/09/09 面试题
个人委托书怎么写
2014/04/04 职场文书
我爱读书演讲稿
2014/05/07 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技