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中使用mysql数据库详细介绍
Mar 27 Python
Python自定义简单图轴简单实例
Jan 08 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
Python操作qml对象过程详解
Sep 26 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
python3正则模块re的使用方法详解
Feb 11 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python中reload重载实例用法
Dec 15 Python
详解Python函数print用法
Jun 18 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
php图片添加水印例子
2016/07/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
img的onload的另类用法
2008/01/10 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python读取文件名并改名字的实例
2019/01/07 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Python如何安装第三方模块
2020/05/28 Python
django和flask哪个值得研究学习
2020/07/31 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
毕业设计论文评语
2014/12/31 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
运动会跳远广播稿
2015/08/19 职场文书