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标准库之循环器(itertools)介绍
Nov 25 Python
python getopt详解及简单实例
Dec 30 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
Python元组及文件核心对象类型详解
Feb 11 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
在python3中实现更新界面
Feb 21 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 Python
Pytest中skip skipif跳过用例详解
Jun 30 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数据库类
2009/05/27 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
php动态绑定变量的用法
2015/06/16 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
个人思想理论学习的自我鉴定
2013/11/30 职场文书
幼儿教师考核制度
2014/01/25 职场文书
《值日生》教学反思
2014/02/17 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
领导干部保密承诺书
2014/08/30 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
2014年班务工作总结
2014/12/02 职场文书
单位接收函范文
2015/01/30 职场文书
采购员岗位职责范本
2015/04/07 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers