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 相关文章推荐
wxPython学习之主框架实例
Sep 28 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
python利用正则表达式提取字符串
Dec 08 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
python列表list保留顺序去重的实例
Dec 14 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 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 动态执行带有参数的类方法
2009/04/10 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
python实现超级马里奥
2020/03/18 Python
Django跨域请求原理及实现代码
2020/11/14 Python
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
小学秋季运动会报道稿
2014/09/30 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书