python select、poll
2016-02-11 20:01
786 查看
select方法: importsocket,select s=socket.socket() host=socket.gethostname() port=1234 s.bind((host,port)) s.listen(5) inputs=[s] whileTrue: rs,ws,es=select.select(inputs,[],[]) forrinrs: ifriss: c,addr=s.accept() print'Gotconnectionfrom',addr inputs.append(c)
else:
try:
data=r.recv(1024)
disconnected=notdata
exceptsocket.error:
disconnected=True
ifdisconnected:
printr.getpeername(),'disconnected'
inputs.remove(r)
else:
printdata
poll方法:
importsocket,select
s=socket.socket()
host=socket.gethostname()
port=1234
s.bind((host,port))
fdmap={s.fileno():s}
s.listen(5)
p=select.poll()
p.register(s)
whileTrue:
events=p.poll()
forfd,eventinevents:
iffdinfdmap:
c,addr=s.accept()
print'Gotconnectionfrom',addr
p.register(c)
fdmap[c.fileno()]=c
elifevent&select.POLLIN:
data=fdmap[fd].recv(1024)
ifnotdata:#Nodata--connectionclosed
printfdmap[fd].getpeername(),'disconnected'
p.unregister(fd)
delfdmap[fd]
else:
printdata
相关文章推荐
- python socketserver
- python socket
- Python - Package os
- python3获取天气预报(转)
- Python+selenium的GUI自动化实现
- python logging模块详解[转]
- python编程常用模板总结
- Python中使用正则表达式
- Windows7基于Python3.5安装Ipython notebook(现称jupyter)
- python黑帽子 pydasm 配置
- 6.python模块(导入,内置,自定义,开源)
- 打造自己的 Python 编码环境
- python——动态类型简介
- python-rrdtool安装
- python2.7.8安装
- python 安装easy_install和pip
- 《Python学习手册》(二)
- 递归创建级联目录之Python_VS_PHP
- 《笨办法学Python》 第37课手记
- LeetCode刷题 (Python) | 328. Odd Even Linked List