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 相关文章推荐
Python3中的真除和Floor除法用法分析
Mar 16 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
详解Python3中的 input() 函数
Mar 18 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
python连接mysql有哪些方法
Jun 24 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 Python
pytest配置文件pytest.ini的详细使用
Apr 17 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
PHP常用编译参数中文说明
2014/09/27 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
PyQt5 多窗口连接实例
2019/06/19 Python
python动态视频下载器的实现方法
2019/09/16 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
社区八一活动方案
2014/02/03 职场文书
节约粮食标语
2014/06/18 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
通报表扬范文
2015/01/17 职场文书
北京导游词
2015/02/12 职场文书