readn writen 接收 傳送 方法封裝

2021-10-06 04:18:38 字數 842 閱讀 2321

通常檔案的i/o與位元組流套接字上的read和write函式所表現的行為不一樣,有時候位元組流套接字上呼叫read和write返回的位元組數可能比請求的大小要小,而這樣並不表示乙個錯誤,如果在核心中用於套接字的緩衝區滿了達到上限了,這時候就需要再次呼叫read或write函式,因此封裝了如下的兩個小函式。

在封裝的函式裡面如果遇到eintr錯誤(說明呼叫被中斷)或eagain(可以嘗試再讀一次),這時候應該繼續讀或寫,以此來處理剩下的位元組

/* code from unix network programing by w.richard stevens */

ssize_t readn

(int fd,

void

*vptr, ssize_t n)

}else

if(nread ==0)

nleft -

= nread;

ptr +

= nread;

}return

(n - nleft)

;}

/* code from unix network programing by w.richard stevens */

ssize_t writen

(int fd,

void

*vptr, ssize_t n)

}else

if(nwritten ==0)

nleft -

= nwritten;

ptr +

= nwritten;

}return

(n - nleft)

;}

C Post接收傳送XML

專案分成兩個 web asp.net 使用者處理請求,客戶端 wpf winform 傳送請求 1.web專案 有兩個頁面 sendpost.aspx 單純傳送資料給客戶端 public partial class sendpost system.web.ui.page accept.aspx 接收...

C BlueTooth 連線 接收 傳送檔案

public partial class form1 form recdir environment.getfolderpath environment.specialfolder.desktop labelrecdir.text recdir private void buttonselectbl...

STM32 UART(接收 ,傳送資料)

uart接收傳送資料 平台 stm32f401 discovery版 此 用的uart6,tx,rx對應的pin腳是pc6,pc7 如圖 步驟一 初始化串列埠的gpio,usart,並且配置上uart的rx中斷 void usart6 config void 步驟二 測試一下tx,即用printf,...