1、寫函式write
函式原型:
size_t write(int fd,constvoid *buf,size_t nbytes);
write函式將buf中的nbytes位元組內容寫入檔案描述符fd,成功時返回寫的位元組數,失敗時返回-1。在網路程式中,向套接字檔案描述符寫時有兩種情況:
1)write的返回值大於0,表示寫了部分或者是全部資料。
2)返回值小於0,此時出現了錯誤,要根據錯誤型別來處理。如果錯誤為eintr,表示寫的時候出現了中斷錯誤;如果為epipe表示網路連線出現了問題(對方關閉了連線)。
可以自定義寫函式來處理上面的情況:
int my_write(int fd, void *buffer, intlength)
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, intlength)
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...