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脚本生成随机IP的简单方法
Jul 30 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
python web框架中实现原生分页
Sep 08 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
python关于调用函数外的变量实例
Dec 26 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
python框架flask入门之环境搭建及开启调试
Jun 07 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python asyncio 协程库的使用
Jan 21 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 中dirname(_file_)讲解
2007/03/18 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP单例模式详细介绍
2015/07/01 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
js常用代码段整理
2011/11/30 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
用python与文件进行交互的方法
2018/03/01 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
python中提高pip install速度
2020/02/14 Python
html5与css3小应用
2013/04/03 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
Java如何格式化日期
2012/08/07 面试题
上海期货面试题
2014/01/31 面试题
《小熊住山洞》教学反思
2014/02/21 职场文书
《故乡》教学反思
2014/04/10 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python