您的位置:首页 > 编程语言 > Python开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: