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中列表、字典、元组、集合数据结构整理
Nov 20 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
python的turtle库使用详解
May 10 Python
使用python模拟高斯分布例子
Dec 09 Python
Django url 路由匹配过程详解
Jan 22 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
Python四款GUI图形界面库介绍
Jun 05 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP7修改的函数
2021/03/09 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
Vue的Options用法说明
2020/08/14 Javascript
python的unittest测试类代码实例
2017/12/07 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python学生管理系统学习笔记
2019/03/19 Python
python实现简单日期工具类
2019/04/24 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
Python如何批量生成和调用变量
2020/11/21 Python
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
Servlet面试题库
2015/07/18 面试题
英语专业学生个人求职信范文
2014/01/06 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
保护动物倡议书
2014/04/15 职场文书
小学生读书活动总结
2014/06/30 职场文书
委托书的格式
2014/08/01 职场文书
平安建设汇报材料
2014/12/29 职场文书
团员个人总结
2015/02/26 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
Golang 链表的学习和使用
2022/04/19 Golang