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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
Python实现字典去除重复的方法示例
Jul 31 Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
django 控制页面跳转的例子
Aug 06 Python
Django 请求Request的具体使用方法
Nov 11 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
Python连接mysql方法及常用参数
Sep 01 Python
PyQt5爬取12306车票信息程序的实现
May 14 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 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常用Output和ptions/Info函数集介绍
2013/06/19 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
jquery 插件 人性化的消息显示
2008/01/21 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python获取文件扩展名的方法
2015/07/06 Python
Python聊天室程序(基础版)
2018/04/01 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python ORM编程基础示例
2020/02/02 Python
为什么说python适合写爬虫
2020/06/11 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
民族团结先进个人材料
2014/02/05 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
PHP解决高并发问题
2021/04/01 PHP
解析目标检测之IoU
2021/06/26 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS