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的Django框架中创建模板库的方法
Jul 20 Python
基于python实现微信模板消息
Dec 21 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python实现list由于numpy array的转换
Apr 04 Python
python实现大文件分割与合并
Jul 22 Python
Python守护进程实现过程详解
Feb 10 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Python基础之Socket通信原理
Apr 22 Python
python接口测试返回数据为字典取值方式
Feb 12 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正则验证Email的方法
2015/06/15 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python二叉树遍历的实现方法
2013/11/21 Python
go和python调用其它程序并得到程序输出
2014/02/10 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python 专题四 文件基础知识
2017/03/20 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
化学教育专业自荐信
2014/07/04 职场文书
管理工程专业求职信
2014/08/10 职场文书
大学生受助感言
2015/08/01 职场文书