unix網路程式設計 第九章 小結

2021-06-07 16:18:04 字數 1072 閱讀 2771

sctp中的通知使得乙個應用程式能夠知曉使用者資料到達意外的重要協議事件

一對多的形式給應用程式開發人員提供這樣的能力:編寫的伺服器程式無需管理大量的套接字描述符。

一到多式的套接字上,用於標識單個關聯的是乙個關聯標識。

當乙個客戶關閉其關聯時,其伺服器也將自動關閉同乙個關聯,伺服器主機核心不再有該關聯的狀態。

可用於致使在四路握手的第三個或第四個分組中捎帶使用者資料的唯一辦法就是使用一對多形式。

使用者必須使用sendto,sendmsg或sctp_sendmsg這三個分組傳送函式

任何時候呼叫其中任何乙個分組傳送函式時,所用的目的位址是由系統在關聯建立階段選定的主目的位址。

關聯事件可能被啟用,因此要是應用程序不希望收到這些事件,就得使用sctp_event套接字選項顯式禁止它們。

sctp_peeloff函式用於從乙個一到多套接字剝離出某個特定的關聯,獨自構成乙個一到一套接字。

剝離出的關聯所在的一到一套接字隨後就可以遣送到它自己的執行緒或程序。

主線程繼續在原來的套接字上以迭代方式處理剩餘關聯的訊息。

sctp_bind允許sctp套接字繫結乙個特定位址子集。

如果在乙個監聽套接字上執行sctp_bindx呼叫,那麼將來產生的關聯將使用新的位址配置,已經存在的關聯不受影響。

動態特性操作要求兩個端點都支援這個特性。

sctp_opt_info替代getsocketopt

sctp_peeloff返回乙個所請求關聯對應的一到一式套接字描述符

sctp端點對shutdown呼叫的反應不同於tcp端點。當相互通訊的兩個sctp端點中任何乙個發起關聯終止序列時,這兩個端點都得把已排隊的任何資料傳送掉,然後關閉關聯。同乙個關聯可用於連線到乙個新的對端端點。shutdown結束後,這個端點就可以重用原套接字連線到新的對端。

使用sctp_events套接字選項可以預訂8個事件。7個為通知事件的額外資料。使用者資料和通知將在套接字緩衝區中交錯出現。

部分遞送應用程式介面用於經由套接字緩衝區向使用者傳送大訊息。傳送最後一部分資料時把msg_flags欄位設定為msg_eor

整體上接受短期請求偶爾需要長期會話的應用系統可以利用sctp_peeloff。

《unix程式設計藝術》第九章 生成

盡可能的把設計複雜度從程式 轉移到資料是乙個好實踐,選擇便於人類維護和操作的資料表示也是乙個好實踐 資料比程式更易駕馭 9.1 資料驅動程式設計 將 和 作用的資料結構劃分清楚,改變程式邏輯時,只需要編輯資料結構 而不需要改動 資料驅動程式設計和物件導向的區別 oo 主要是以資料組織為中心的風格 1...

程式設計珠璣第九章

1 記憶體訪問 連續記憶體訪問與跨頁面訪問記憶體的區別 注意在訪問記憶體的時候,要注意記憶體的連續性,如果訪問的記憶體不是連續的,那麼程式的執行速度也會受到極大的影響 例如訪問乙個二維陣列時,先訪問行,再訪問列,能夠減少頁面排程次數,同時cache命中率也相對高些。2 遞迴呼叫巨集時,需要小心,巨集...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...