python如何使用socketserver模块实现并发聊天

yipeiwu_com6年前Python基础

这篇文章主要介绍了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按照多个字符对字符串进行分割的方法

本文实例讲述了python按照多个字符对字符串进行分割的方法。分享给大家供大家参考。具体分析如下: 这段python代码通过这规则表达式对字符串进行分割,使用\w作为分割符,只要不是字母...

基于树莓派的语音对话机器人

本文实例为大家分享了基于树莓派的语音对话机器人,供大家参考,具体内容如下 第一部分代码 arecord -D "plughw:1" -f S16_LE -r 16000 -d 3 /...

django 按时间范围查询数据库实例代码

从前台中获得时间范围,在django后台处理request中数据,完成format,按照范围调用函数查询数据库。 介绍一个简单的功能,就是从web表单里获取用户指定的时间范围,然后在数据...

详解django三种文件下载方式

一、概述 在实际的项目中很多时候需要用到下载功能,如导excel、pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍djang...

Python3中的最大整数和最大浮点数实例

Python中的最大整数 Python中可以通过sys模块来得到int的最大值. python2中使用的方法是 import sys max = sys.maxint print (...