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获取Windows或Linux主机名称通用函数分享
Nov 22 Python
探究Python多进程编程下线程之间变量的共享问题
May 05 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
TensorFlow实现Logistic回归
Sep 07 Python
Python切图九宫格的实现方法
Oct 10 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
基于python爬取有道翻译过程图解
Mar 31 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 Python
python 实现表情识别
Nov 21 Python
python中绕过反爬虫的方法总结
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
网络资源
2006/10/09 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
Node.js Express安装与使用教程
2018/05/11 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python中请不要再用re.compile了
2019/06/30 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
python交互模式基础知识点学习
2020/06/18 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
教育专业自荐书范文
2013/12/17 职场文书
经济管理专业自荐信
2013/12/30 职场文书
银行工作检查书范文
2014/01/31 职场文书
大学校运会广播稿
2014/02/03 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
八项规定整改方案
2014/10/01 职场文书
体育教师教学随笔
2015/08/15 职场文书