python select實現非阻塞socket
来源:互联网 发布:廊坊银行网络账户 编辑:程序博客网 时间:2024/06/02 00:30
#!/usr/bin/env python# -*- encoding: utf-8 -*-import socketimport selecthost = "" port = 50000 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((host,port)) s.listen(5)print "begin..."while 1: infds,outfds,errfds = select.select([s,],[],[],5) # 如果infds状态改变,进行处理,否则不予理会 if len(infds) != 0: clientsock,clientaddr = s.accept() infds_c,outfds_c,errfds_c = select.select([clientsock,],[],[],3) if len(infds_c) != 0: buf = clientsock.recv(8196) if len(buf) != 0: print (buf) clientsock.close() print "clientsock closed" print "no data coming"
在綱絡上看到的一篇文章, 介紹Python的socket非阻塞式
在原來的代碼基礎上改了一下,增加了一個select使用了兩個select,
第一個select充許多個client來connect,如果過了5秒還沒有client來connect顯示 "no data coming"
第二個select是如果client connect過來, 過了3秒還沒有發送message則直接close, 不會造成阻塞
- python select實現非阻塞socket
- python使用select监听非阻塞socket遇到的问题
- linux socket 非阻塞select
- Select非阻塞Socket Server
- python select模块.select实现非阻塞socket,Popen等(特别在 Unix 下,它还可以用于管道)
- python socket Select模型
- python socket and select
- 非阻塞式socket编程select()
- 非阻塞式socket编程(select() )
- 非阻塞式socket编程select()【转载】
- 非阻塞式socket编程select()
- 非阻塞式socket编程(select() )
- 非阻塞式socket编程(select() 2
- 非阻塞式socket编程select()
- 非阻塞式socket编程(select() )
- 非阻塞式socket编程(select() )
- 谈select和阻塞socket的关系
- Socket采用select实现非阻塞功能
- linux设备驱动学习笔记——重要的一些概念
- wimform 导出数据 excel
- 改进的listbox分组样式
- Android项目中不能同时写带有java中的main方法的类
- 重装VS6时,弹出Setup Was Unable to Create a DCOM User Account错误的解决方法
- python select實現非阻塞socket
- boc
- 【总结】IE和Firefox的Javascript兼容性总结
- launcher学习总结
- 11.11 replace inheritance with delegation(以委托取代继承)
- 生活20111019
- 一个不错的图片播放器,做前端的你懂的!!!
- FLASH中的Button组件的使用方法
- 微软相关网站无法打开解决办法