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 22 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
Python中协程用法代码详解
Feb 10 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
python编写简单端口扫描器
Sep 04 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
python实现操作文件(文件夹)
Oct 31 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
Python 如何实现数据库表结构同步
Sep 29 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中cookies使用指南
2007/03/16 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
详解flask入门模板引擎
2018/07/18 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
运动会方阵解说词
2014/02/12 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
2014年节能工作总结
2014/12/18 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
欧元符号 €
2022/02/17 杂记