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 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
python中的__init__ 、__new__、__call__小结
Apr 25 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
python图书管理系统
Apr 05 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
python实现小球弹跳效果
May 10 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
Python self用法详解
Nov 28 Python
Python内置包对JSON文件数据进行编码和解码
Apr 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常用hash加密函数
2014/11/22 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
python实现AES加密和解密
2019/03/27 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python使用openpyxl复制整张sheet
2021/03/24 Python
大学生涯自我鉴定
2014/01/16 职场文书
踏青活动策划方案
2014/08/19 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python