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中while循环语句用法简单实例
May 07 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
python中requests小技巧
May 10 Python
python Flask实现restful api service
Dec 04 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
python list转置和前后反转的例子
Aug 26 Python
python 内置函数汇总详解
Sep 16 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
Python代码风格与编程习惯重要吗?
Jun 03 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代码的53条建议
2008/03/27 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
JavaScript获取时区实现过程解析
2020/09/24 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
给导游的表扬信
2014/01/10 职场文书
留学自荐信写作方法
2014/01/27 职场文书
会务接待方案
2014/02/27 职场文书
公司承诺书范文
2014/05/19 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
涨价通知怎么写
2015/04/23 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书