這兩個函式的最後乙個引數是收發資料時的可選項。可以利用位或運算(|)同時傳遞多個資訊。
用於傳送「帶外資料」緊急訊息。優先處理。
傳送例子
接收例子編譯並執行上面的send和recv(./send 127.0.0.1 9190 ./recv 9190)
結果顯示:
123urgent message:4
567urgent message:0
89通過msg_oob可選項傳遞資料不會加快資料傳輸速度,而且通過訊號處理函式也只能讀取1位元組,剩餘資料只能通過未設定msg_oob的普通輸入函式讀取。這是因為tcp不存在真正的「帶外資料」,只是利用tcp的緊急模式進行傳輸。
同時設定msg_peek選項和msg_dontwait選項,以驗證輸入緩衝是否存在接收的資料。
設定msg_peek選項並呼叫recv函式時,即使讀取了輸入緩衝的資料也不會刪除。msg_peek,msg_dontwait合作用於呼叫以非阻塞方式驗證待讀資料存在與否的函式。
對資料進行整合傳輸及傳送的函式通過writev函式可以將分散儲存在多個緩衝中的資料一併傳送
通過readv函式可以由多個緩衝分別接收。
因此,可以使用這兩個函式以減少io函式的呼叫次數
網路程式設計常用I O函式
read write readv writev 對資料進行整合傳輪及傳送的函式。也就是說,通過writev 函式可以將分散儲存在多個緩衝中的資料一併傳送,通過readv函式可以由多個緩衝分別接收。因此,適當使用這2個函式可以減少i o函式的呼叫次數。下面先介紹writev 函式。include ss...
網路程式設計教程(五)高階I O函式
用於建立檔案描述符的函式,包括pipe dup dup2函式。用於讀寫資料的函式,包括readv writev sendfile mmap munmap splice和tee函式。用於控制i o行為和屬性的函式,包括fcntl函式。一 用於建立檔案描述符的函式 include int pipe in...
《網路程式設計》I O 模型
在分析 i o 模型之前,首先了解 同步 i o 和 非同步 i o 的基本概念 同步 i o 程序呼叫 i o 操作函式時,在 i o 操作函式返回之前,該程序會被掛起 即阻塞 直到 i o 操作完成後返回 非同步 i o 程序呼叫 i o 操作函式時,在 i o 操作函式返回之前,該程序不會被掛...