這裡簡單搞搞 select 和 eopll 的介面開發 ~
select 目前幾乎在所有的平臺上支援,其良好跨平臺支援也是它的一個優點,事實上從現在看來,這也是它所剩不多的優點之一,現在其實更多的人用 epoll,在 python 下 epoll 文件有點少,就先講究搞搞 select ~
select 的一個缺點在於單個程序能夠監視的檔案描述符的數量存在最大限制,在 Linux 上一般為 1024,不過可以透過修改宏定義甚至重新編譯核心的方式提升這一限制。
說點我的理解,要是用煩了多執行緒的網路程式設計,可以試試 select 的模型。
傳遞給 select 的引數是幾個列表,分別表示讀事件、寫事件和錯誤事件。select 方法返回三個列表,其中包含滿足條件的物件(讀、寫和異常)。
服務端的程式碼:
#coding:utf-8import socket,selectimport timeimport os #xiaorui.cchost = "localhost"port = 50000s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((host,port))s.listen(5)while 1: infds,outfds,errfds = select.select([s,],,,5) if len(infds) != 0:clientsock,clientaddr = s.acceptbuf = clientsock.recv(8196)if len(buf) != 0: print (buf) os.popen(\'sleep 10\').read clientsock.close # print "no data coming"
Loading...
未載入完,嘗試【重新整理】or【退出閱讀模式】or【關閉廣告遮蔽】。
嘗試更換【Firefox瀏覽器】or【Chrome谷歌瀏覽器】開啟多多收藏!
移動流量偶爾打不開,可以切換電信、聯通、Wifi。
收藏網址:www.peakbooks.cc
(>人<;)