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中引用与复制用法实例分析
Jun 04 Python
RC4文件加密的python实现方法
Jun 30 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
python学生管理系统代码实现
Apr 05 Python
pandas多级分组实现排序的方法
Apr 20 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
Python tkinter三种布局实例详解
Jan 06 Python
基于python实现模拟数据结构模型
Jun 12 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 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 session安全问题分析
2011/06/24 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
2014过年倒计时示例
2014/01/31 PHP
php把session写入数据库示例
2014/02/26 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python爬取m3u8连接的视频
2018/02/28 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python pandas生成时间列表
2019/06/29 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python反扒机制的5种解决方法
2021/02/06 Python
2019年分享net面试的经历和题目
2016/08/07 面试题
拾金不昧表扬信怎么写
2015/05/04 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript