unix linux socket設定非阻塞

2021-06-22 14:22:41 字數 343 閱讀 2083

uniix/linux下socket主要是同步的,但有阻塞和非阻塞兩種方式。

阻塞方式定義與前面定義相同,要解決阻塞有兩種方法:

一種是設定socket屬性,設定為非阻塞(fcntl()函式),

sockfd = socket(af_inet, sock_stream, 0); 

fcntl(sockfd, f_setfl, o_nonblock);   

通過設定套接字為非阻塞,你能夠有效地"詢問"套接字以獲得資訊。如果嘗試著從乙個非阻塞的套接字讀資訊並且沒有任何資料,它不允許阻 塞,它將返回 -1 並將 errno 設定為 ewouldblock。

二種是通過select的方式

JAVA中的IO同步阻塞和NIO同步非阻塞

ionio 面向流面向緩衝 阻塞io 非阻塞io 無選擇器 1.面向流與面向緩衝2.阻塞與非阻塞 io3.選擇器 selector 最傳統的一種io模型,即在讀寫資料過程中會發生阻塞現象。當使用者執行緒發出io請求之後,核心會去檢視資料是否就緒,如果沒有就緒就會等待資料就緒,而使用者執行緒就會處於阻...

蛻變成蝶 Linux裝置驅動中的阻塞和非阻塞I O

今天意外收到乙個訊息,真是驚呆我了,部落格軒給我發了資訊,說是俺的部落格文章有特色可以出本書,這簡直讓我受寵若驚,俺只是個大三的技術宅,寫的部落格也是自己所學的一些見解和在網上看到我一些博文以及帖子裡綜合起來寫的,總之這又給了額外的動力,讓自己繼續前進,希望和大家能夠分享一些自己的經驗,在最需要奮鬥...

深入淺出 Linux裝置驅動中的阻塞和非阻塞I O

今天寫的是linux裝置驅動中的阻塞和非阻塞i 0,何謂阻塞與非阻塞i o?簡單來說就是對i o操作的兩種不同的方式,驅動程式可以靈活的支援使用者空間對裝置的這兩種訪問方式。一 基本概念 二 輪詢操作 阻塞的讀取乙個字元 1 2 3 4 5 6 7 8 charbuf fd open dev tty...