这篇文章主要为大家详细介绍了python实现单线程多任务非阻塞TCP服务端的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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的单线程多任务的实现相关推荐

  1. Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)

    文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...

  2. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

  3. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  4. python 线程_python 线程

    一.什么是线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线 ...

  5. python编程语言_python编程语言的简要历史

    python编程语言 The Python programming language is a general-purpose programming language that has carved ...

  6. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  7. pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端

    本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器soc ...

  8. python是多线程还是单线程_Python单线程与多线程

    最近一直在学习爬虫的相关知识,目前学习到了单线程.多线程这一块,把自己的学习经历分享出来顺便也做个笔记. 一.单线程操作 单线程操作就是我们日常写代码时的操作,为了比较出和多线程的区别,以下为其对比. ...

  9. python重复执行函数_Python threading 单线程 timer重复调用函数

    项目中需要使用定时器,每次都使用构造器函数调用: timer = threading.Timer(timerFlag, upload_position) timer.start() 打印线程后发现,每 ...

最新文章

  1. 2021年大数据Hadoop(三):Hadoop国内外应用
  2. Webpack 4 学习09(打包生成html)
  3. 科达正式发布PPP业务支持计划
  4. luogu P5292 [HNOI2019]校园旅行
  5. netbeans卸载 linux,NetBeans_6.1自己使用。(linux-ubuntu下)
  6. LINUX 数据盘的格式化与挂载
  7. 查看linux文件系统结构,linux的文件系统架构
  8. 1099. Build A Binary Search Tree (30)
  9. 001 python接口 get请求
  10. 几个移动端直播SDK开源地址
  11. 计算机毕业设计之校园二手交易平台
  12. 干货】最详细、最完美、可以上下左右移动的表格布局,仿同花顺自选列表,老虎证券财报列表,欢迎 Start、Fork
  13. 什么是布控球,作用是什么?
  14. 消息队列及短信发送平台
  15. Spring Cloud项目是如何读取bootstrap.properties文件的?
  16. 高防服务器有哪些优势
  17. 对一个整形数组进行顺序排列
  18. 天然气压缩因子计算软件_媒体看陕鼓陕鼓天然气长输管线压缩机组投运
  19. 正则匹配空字符串 /(^\s)/
  20. 腾讯云轻量服务器在线安装MySQL

热门文章

  1. .Net 零星小知识
  2. Git复习(二)之远程仓库、注册GitHub账号、SSH警告、使用GitHub
  3. 事件轮询 Event Loop
  4. Array and ArrayList
  5. 动态备份SQL-SERVER数据库——SQLDMO
  6. redo log重做日志缓冲
  7. 会员教程翻译:性能和时间
  8. Blueprint CSS Framework 学习笔记
  9. Python——函数 8、可变长参数
  10. 对《构建之法》的一点认识