python---IO多路复用
这里的IO是指网络IO
python中通过select模块实现IO多路复用,select模块中有select、poll、epoll等方法
下面例子以select模块实现IO多路复用
仅仅只有IO多路复用只能实现伪并发
服务器端
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'zhoufeng' import socket import select sk=socket.socket() sk.bind(('127.0.0.1',9999,)) sk.listen(5) inputs=[sk,] #监听的对象 while True: # rlist中元素是socket对象 # 监听sk(服务器端)对象,如果sk对象发生变化,表示有客户端来连接了,此时rlist值为[sk] # 监听conn对象,如果conn发生变化,表示客户端有新消息发送过来了,此时rlist的值为 [客户端] rlist,w,e=select.select(inputs,[],[],1) #print(rlist) print(len(inputs),len(rlist)) for r in rlist: #如果rlist列表为空,此for循环不会执行 if r==sk: #表示有新的客户端来连接 #print(r) conn,addr=r.accept() #为新的客户端创建conn对象 inputs.append(conn) #将新的conn对象放到inputs中 conn.sendall(bytes('hello',encoding='utf-8')) else: r.recv(1024) #表示客户端发送了数据
客户端
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'zhoufeng' import socket import select sk=socket.socket() sk.connect(('127.0.0.1',9999,)) data=sk.recv(1024) print(data) while True: inp=input('>>>') sk.sendall(bytes(inp,encoding='utf-8')) sk.close()
python---IO多路复用的更多相关文章
- Python——IO多路复用之select模块epoll方法
Python——IO多路复用之select模块epoll方法 使用epoll方法实现IO多路复用,使用方法基本与poll方法一致,epoll效率要高于select和poll. .├── epoll_c ...
- Python——IO多路复用之select模块poll方法
Python——IO多路复用之select模块poll方法 使用poll方法实现IO多路复用 .├── poll_client.py├── poll_server.py└── settings.py ...
- Python——IO多路复用之select模块select方法
Python——IO多路复用之select模块select方法 使用select模块的select方法实现Python——IO多路复用 实现同时将终端输入的文本以及客户端传输的文本写入文本文件中: w ...
- Python IO 多路复用 \协程
IO 多路复用 作用: 检测多个socket是否已经发生变化(是否已经连接成功/是否已经获取数据) 即(可读/可写) IO请求时 解决并发 : 单线程 def get_data(key): cl ...
- python IO 多路复用
一.epoll epoll 参考链接: https://www.cnblogs.com/Alanpy/articles/5125986.html epoll 参考链接: https://www.cn ...
- Python IO多路复用select模块
多路复用的分析实例:服务端.客户端 #服务端配置 from socket import * import time import select server = socket(AF_INET, SOC ...
- python IO多路复用版FTP
需求: 实现文件上传及下载功能 支持多连接并发传文件 使用select or selectors
- Python(七)Socket编程、IO多路复用、SocketServer
本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...
- python中的IO多路复用
在python的网络编程里,socetserver是个重要的内置模块,其在内部其实就是利用了I/O多路复用.多线程和多进程技术,实现了并发通信.与多进程和多线程相比,I/O多路复用的系统开销小,系统不 ...
- socket_server源码剖析、python作用域、IO多路复用
本节内容: 课前准备知识: 函数嵌套函数的使用方法: 我们在使用函数嵌套函数的时候,是学习装饰器的时候,出现过,由一个函数返回值是一个函数体情况. 我们在使用函数嵌套函数的时候,最好也这么写. def ...
随机推荐
- css 多个不定数量提交按钮居中显示,纯css解决
前几天在公司修改一个css 多个按钮居中问题,其实这样的问题很多前端程序员都遇到过,举个例子吧: 在一行中有三个按钮或是两个按钮...个数不定,然后间距固定:然后就有很多人把所有按钮放到一个div中, ...
- 安装和配置CentOS时钟同步服务
Type the following command to install ntp: # yum install -y ntp Turn on service: # chkconfig ntpd on ...
- linux---mysql安装
一.查询本机是否有mysql service mysql status 二.检查已安装的mysql版本 mysql –uroot -p status 三.查看已安装的mysql的组件 dpkg --g ...
- Lab_2_SysOps_VPC_Linux_v2.5
System Operations - Lab 2: Configuring a Virtual Private Cloud with Amazon VPC - Linux - 2.5 ======= ...
- 山东省选 郁闷的小J
小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说来,书架由 ...
- Using dojo/query(翻译)
In this tutorial, we will learn about DOM querying and how the dojo/query module allows you to easil ...
- 获取小众ftp服务器指定目录内容列表
今天获取小众ftp服务器指定目录内容列表时费劲急了. ///parama url="ftp://x.x.x.x/dir_name" public string GetFTPDir( ...
- UVA 494 Kindergarten Counting Game
题目大意:输入一个字字符串,输出该字符串中所包含的"word"个数,其中"word"是指连续的字母(大小写均可) 题目思路:其实这是道水题,不过我考虑的时候,太 ...
- 小例子 熟悉jquery
<div class="tab-head"> <h2 id="tab1" class="selected">JQGr ...
- jvm是如何管理内存的
1.JVM是如何管理内存的 Java中,内存管理是JVM自动进行的,无需人为干涉. 了解Java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对 ...