四 網路程式設計 讀寫函式

2021-09-08 11:37:57 字數 1032 閱讀 7239

1、寫函式write

函式原型:

size_t write(int fd,const

void *buf,size_t nbytes);

write函式將buf中的nbytes位元組內容寫入檔案描述符fd,成功時返回寫的位元組數,失敗時返回-1。在網路程式中,向套接字檔案描述符寫時有兩種情況:

1)write的返回值大於0,表示寫了部分或者是全部資料。

2)返回值小於0,此時出現了錯誤,要根據錯誤型別來處理。如果錯誤為eintr,表示寫的時候出現了中斷錯誤;如果為epipe表示網路連線出現了問題(對方關閉了連線)。

可以自定義寫函式來處理上面的情況:

int my_write(int fd, void *buffer, int

length)

bytes_left -=written_bytes;

ptr += written_bytes; /*

從剩下的地方繼續寫 */}

return(0

);}

2、讀函式read

函式原型:

size_t read(int fd,void *buf,size_t nbytes);

read函式是負責從fd中讀取內容。當讀成功時,read返回實際所讀的位元組數。如果返回的值是0 表示已經讀到檔案的結束了;小於0表示出現了錯誤:如果錯誤為eintr說明讀是由中斷引起的,如果是econnrest表示網路連線出了問題。

可以自定義讀函式來處理上面的情況:

int my_read(int fd, void *buffer, int

length)

else

if (bytes_read == 0

)

break

; bytes_left -=bytes_read;

ptr +=bytes_read;

}return(length -bytes_left);

}

四 網路程式設計epoll udp003

5 udp廣播,組播 之前的多程序 多執行緒實現多個連線請求的時候,程式設計師既要管理監聽,又要管理通訊。select委託核心去做客服端連線請求的監聽,程式設計師專注於通訊,需要給核心一些資料 就是select引數,sizeof得出的單位是位元組 迴圈委託核心做監聽檢測 gdb 除錯 gcc tes...

39 網路程式設計

http協議,hyper text transfer protocol 超文字傳輸協議 是用於從全球資訊網伺服器傳送超文字到本地瀏覽器的傳輸議,http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。c s模式 client和server常常分別處在相距很遠的兩台計算機上,clie...

2018 4 15 網路程式設計

單純的客戶端服務端有個侷限性,a客戶端連線上以後,未處理完之前,b客戶端連線只有等待 所以服務端最好將每個客戶端封裝到乙個執行緒中 class picthread implements runnable public void run outputstream out s.getoutputstre...