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 的 with 语句详解
Jun 13 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
详解python3实现的web端json通信协议
Dec 29 Python
python 垃圾收集机制的实例详解
Aug 20 Python
python 生成器协程运算实例
Sep 04 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
查看python下OpenCV版本的方法
Aug 03 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
Python获取指定网段正在使用的IP
Dec 14 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安全配置方法
2007/06/16 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
python类定义的讲解
2013/11/01 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python字典对象实现原理详解
2019/07/01 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
C语言基础笔试题
2013/04/27 面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
给公司的建议书范文
2014/05/13 职场文书
部门2014年度工作总结
2014/11/12 职场文书
工程部岗位职责
2015/02/10 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS