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核心对象类型字符串
Feb 11 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
python开发游戏的前期准备
May 05 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
python数据抓取3种方法总结
Feb 07 Python
Python基础之元组与文件知识总结
May 19 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
Zend公司全球首推PHP认证
2006/10/09 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
深入理解vue中的$set
2017/06/01 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python在线运行代码助手
2016/07/15 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
python3跳出一个循环的实例操作
2020/08/18 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
python实现学生信息管理系统源码
2021/02/22 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
证婚人经典证婚词
2014/01/09 职场文书
商业活动邀请函
2014/02/04 职场文书
《掌声》教学反思
2014/02/23 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android