python实现单线程多任务非阻塞TCP服务端


Posted in Python onJune 13, 2017

本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下

# coding:utf-8
from socket import *

# 1.创建服务器socket
sock = socket(AF_INET, SOCK_STREAM)

# 2.绑定主机和端口
addr = ('', 7788) #
sock.bind(addr)

# 3. 设置最大监听数目,并发
sock.listen(10)

# 4. 设置成非阻塞
sock.setblocking(False)
# 保存客户端socket
clientAddrList = []
# print(sock.)

while 1:
  try:
    clientSocket, clientAddr = sock.accept()
  except:
    pass
  else:
    print("一个新客户端到来:%s" % str(clientAddr))
    clientSocket.setblocking(False)
    clientAddrList.append((clientSocket, clientAddr))

  for clientSocket, clientAddr in clientAddrList:
    try:
      recvData = clientSocket.recv(1024)
    except:
      pass
    else:
      if len(recvData) > 0:
        print("%s:%s" % (str(clientAddr), recvData))
      else:
        clientSocket.close()
        clientAddrList.remove((clientSocket, clientAddr))
        print("%s 已经下线" % str(clientAddr))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python里对list中的整数求平均并排序
Sep 12 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
python实现图像识别功能
Jan 29 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
python名片管理系统开发
Jun 18 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
基于PyTorch中view的用法说明
Mar 03 Python
Python实现的下载网页源码功能示例
Jun 13 #Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 #Python
老生常谈python之鸭子类和多态
Jun 13 #Python
浅谈scrapy 的基本命令介绍
Jun 13 #Python
python生成词云的实现方法(推荐)
Jun 13 #Python
Python实现Linux中的du命令
Jun 12 #Python
python正则表达式的使用
Jun 12 #Python
You might like
php 生成短网址原理及代码
2014/01/23 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
Django实现组合搜索的方法示例
2018/01/23 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
flask session组件的使用示例
2018/12/25 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
怎么快速自学python
2020/06/22 Python
利用python 下载bilibili视频
2020/11/13 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
车间调度岗位职责
2013/11/30 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
《赶海》教学反思
2014/04/20 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
优秀教师个人材料
2014/12/15 职场文书
小兵张嘎观后感
2015/06/03 职场文书
常住证明范本
2015/06/23 职场文书