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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
python多线程抓取天涯帖子内容示例
Apr 03 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
python GUI实现小球满屏乱跑效果
May 09 Python
Django 反向生成url实例详解
Jul 30 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
Django ORM filter() 的运用详解
May 14 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
Opencv求取连通区域重心实例
Jun 04 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 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多线程下载远程多个文件
2013/06/25 PHP
解析php入库和出库
2013/06/25 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
基于FME使用Python过程图解
2020/05/13 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
音乐专业自荐信
2014/02/07 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
团队拓展活动方案
2014/08/28 职场文书