伺服器被動開啟(passive open):socket
、bind
、listen
。客戶端通過socket
、connect
主動開啟(active open)。accept
和connect
是阻塞的
// 把目標位元組串指定數目的位元組置為c
void *memset(void *dest, int c, size_t len);
// 將指定數目的位元組從原位元組移到目標字串
void *memcpy(void *dest, const
void *src, size_t nbytes);
// 比較位元組串,相同返回0
intmemcpy(const
void *ptrl, const
void *ptr2, size_t nbytes);
位元組流套接字呼叫read
或者write
輸入或者輸出的位元組數可能比請求的數量少,然而這不是出錯的狀態,這是因為核心中用於套接字的緩衝區肯能已經達到了極限。
基於文字行的網路協議:smtp、http、ftp等
//子程序返回0,父程序返回子程序id
pid_t fork(void);
//exec把當前程序映像替換成新的程式檔案,程序id不變
6個exec函式不同:
大多數tcp伺服器是併發的,它們為每個待處理的客戶鏈結呼叫fork
派生乙個子程序。大多數udp伺服器卻是迭代的。
UNIX網路程式設計卷1 第1章 簡介
要編寫通過計算機網路通訊的程式,首先要確定這些程式相互通訊所用的協議。一般認為web伺服器程式是乙個長時間執行的程式 守護程式,daemon 它只在響應來自網路的請求時才傳送網路訊息。協議的另一端是web客戶程式,如某種瀏覽器,與伺服器程序的通訊總是由客戶程序發起。在設計網路應用時,確定總是由客戶發...
《UNIX網路程式設計 卷1》 筆記 UNIX域協議
unix域協議並不是乙個實際的協議族,而是在單個主機上客戶程序和伺服器程序之間通訊的一種方法。unix域使用的套接字結構如下 struct sockaddr un int main int argc,char argv 執行結果如下 可以看到繫結的路徑名 tmp 123 現在是乙個套接字檔案。uni...
套接字選項(摘抄自unix網路程式設計卷1)
int getsockopt int sock,int level,int optname,void optval,socklen t optlen int setsockopt int sock,int level,int optname,const void optval,socklen t o...