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 subprocess模块学习总结
Mar 13 Python
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
python基础知识小结之集合
Nov 25 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
pandas之分组groupby()的使用整理与总结
Jun 18 Python
详解python变量与数据类型
Aug 25 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
python全栈开发语法总结
Nov 22 Python
Python selenium的这三种等待方式一定要会!
Jun 10 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
js 走马灯简单实例
2013/11/21 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python标准库与第三方库详解
2014/07/22 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
一名毕业生的自我鉴定
2013/12/04 职场文书
xxx同志考察材料
2014/02/07 职场文书
消防宣传口号
2014/06/16 职场文书
销售人员求职信
2014/07/22 职场文书
公司租房协议书范本
2014/10/08 职场文书
街道务虚会发言材料
2014/10/20 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
党小组考察意见
2015/06/02 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
python中redis包操作数据库的教程
2022/04/19 Python