TCP IP系列基礎概念(二)

2021-07-22 08:49:41 字數 804 閱讀 9640

應用程序從recvfrom呼叫開始到返回的整個時間內是阻塞的,知道recvfrom成功返回後,應用程序開始處理資料。

程序把乙個套接字設定成非阻塞是再通知核心:當所請求的i/o操作非得把本程序投入睡眠才能完成時,不要把本程序投入睡眠,而是返回乙個錯誤。前三次呼叫recvfrom時沒有資料返回,因此核心轉而立即返回乙個ewouldblock錯誤。第四次呼叫recvfrom時已有乙個資料報準備好,它被複製到應用程序快取區,於是recvfrom成功返回。當乙個應用程序像這樣對乙個非阻塞描述符迴圈呼叫recvfrom時,我們稱之為輪詢(polling)。

有了i/o復用(i/o multiplexing),我們就可以呼叫select或poll,阻塞在這兩個系統呼叫中的某乙個之上,而不是阻塞在真正的i/o系統呼叫上。我們阻塞於select呼叫,等待資料報套接字變為可讀。當select返回套接字可讀這一條件時,我們呼叫recvfrom把所讀資料報複製到應用程序緩衝區。與i/o復用密切相關的另一種i/o模型是在多執行緒中使用阻塞式i/o。這種模型與上述模型極為相似,但它沒有使用select阻塞在多個檔案描述符上,而是使用多個執行緒(每個檔案描述符乙個執行緒),這樣每個執行緒都可以自由地呼叫諸如recvfrom之類的阻塞式i/o系統呼叫了。

TCP IP基礎概念

上個世紀60年代,由於 集中式網路的容災性較弱,以美國國防部為中心的一家組織研究出分組交換網路。後來為了驗證分組交換技術的實用性,arpanet出現了,並且在3年內逐漸發展,由4個節點發展至34個節點。20世紀70年代前半葉,arpanet乙個機構研製出了tcp ip,1982年具體規範確定,198...

Core Data系列二 基礎概念

本文介紹的core data的基本概念是基於最常見的場合 core data配合sqlite資料庫使用。core data也可以處理記憶體中的資料,這點不在討論範圍內 core data中基本的類 core data中的檔案型別 core data stack 資料庫中所有的元件繫結在一起,稱為堆疊...

TCP IP 基礎概念簡記

tcp ip協議族的分層 應用層運輸層 網路層鏈路層 網際網路位址 ip位址 網際網路上的每個介面必須有乙個唯一的internet位址,它一定的結構,分為abcde五類。a類保留給 機構,b類分配給中等規模的公司,c類分配給任何需要的人,d類用於組播,e類用於實驗,各類可容納的位址數目不同。其結構如...