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简单实现获取当前时间
Aug 27 Python
Python探索之ModelForm代码详解
Oct 26 Python
详解python中的 is 操作符
Dec 26 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
python版本的仿windows计划任务工具
Apr 30 Python
python 获取等间隔的数组实例
Jul 04 Python
python制作英语翻译小工具代码实例
Sep 09 Python
python实现的发邮件功能示例
Sep 11 Python
python 实现矩阵填充0的例子
Nov 29 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python烟花效果的代码实例
Feb 25 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
提取HTML标签
2006/10/09 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
幼儿园父亲节活动方案
2014/03/11 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
庆七一活动总结
2014/08/27 职场文书
党代会心得体会
2014/09/04 职场文书
银行转正自我鉴定
2014/09/29 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
员工手册董事长致辞
2015/07/29 职场文书
小学体育组工作总结
2015/08/13 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python