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计算一个文件里字数的方法
Jun 15 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
PyQt5实现登录页面
May 30 Python
对python中list的五种查找方法说明
Jul 13 Python
python的链表基础知识点
Sep 13 Python
python 逐步回归算法
Apr 06 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调用三种数据库的方法(2)
2006/10/09 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
javascript时区函数介绍
2012/09/14 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
Python实现备份文件实例
2014/09/16 Python
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
为什么要使用servlet
2016/01/17 面试题
护士自荐信
2013/10/25 职场文书
英文版网络工程师求职信
2013/10/28 职场文书
会计专业求职信
2014/08/10 职场文书
岗位聘任协议书
2015/09/21 职场文书
周一问候语大全
2015/11/10 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
利用python做数据拟合详情
2021/11/17 Python