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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
浅谈Python中range和xrange的区别
Dec 20 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
简单分析python的类变量、实例变量
Aug 23 Python
python第三方库学习笔记
Feb 07 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
python生成word合同的实例方法
Jan 12 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 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
建立文件交换功能的脚本(一)
2006/10/09 PHP
PHP新手上路(十三)
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
jquery之Document元素选择器篇
2008/08/14 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
js作用域和作用域链及预解析
2019/04/11 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python 实现向word(docx)中输出
2020/02/13 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
外包公司软件测试工程师
2014/11/01 面试题
自动化系在校本科生求职信
2013/10/23 职场文书
应届生保险求职信
2013/11/11 职场文书
人民调解协议书
2016/03/21 职场文书
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技