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使用socket进行简单网络连接的方法
Apr 29 Python
Python内建数据结构详解
Feb 03 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
使用python绘制二元函数图像的实例
Feb 12 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python实现简单坦克大战
Mar 27 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python 解决函数返回return的问题
Dec 05 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之apc
2013/05/15 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
python获取当前日期和时间的方法
2015/04/30 Python
Python反转序列的方法实例分析
2018/03/21 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
经典的班主任推荐信
2013/10/28 职场文书
个人考核材料
2014/05/15 职场文书
法语专业求职信
2014/07/20 职场文书
简单租房协议书范本
2014/08/20 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python