UNP讀書筆記二 常用TCP程式設計API

2021-09-13 03:18:47 字數 1035 閱讀 6893

只是簡單介紹下每個函式的作用,很容易通過引數名知道每個引數的意義。

int socket(int family, int type, int protocol);

此函式根據引數建立乙個指定的套介面,返回套介面描述符。

int connect(int sockfd, const struct sockaddr *servaddr, socklen addrlen);

tcp客戶呼叫此函式向伺服器發起連線,激發三路握手過程,在連線建立或出錯時返回。此函式導致客戶端從closed狀態轉到syn_sent狀態,再到

established狀態。若函式呼叫失敗,套介面sockfd不再可用,必須關閉。

int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);

此函式用來給套介面繫結套介面位址。伺服器通常呼叫此函式,來指定ip位址和埠號。

int listen(int sockfd, int backlog);

此函式完成兩件事:將乙個套介面置為被動套介面,預設是主動套介面;指定此套介面排隊的最大連線數。

int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);

int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);

當建立建立後(客戶端connect成功,伺服器端accept成功),呼叫此函式來獲得本地套介面位址。sockfd必須是已經建立連線的套介面描述符。

int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen);

一般情況下,伺服器端呼叫此函式來獲取客戶端套介面位址。雖然accept也返回客戶端套介面位址,但是在併發伺服器上fork exec後,子程序的儲存映像被新的程式檔案代替,這樣子程序就無法取得由accept返回的客戶端套介面位址結構。此時就需要呼叫getpeername。

UNP讀書筆記第二章

unp讀書筆記第二章 傳輸層 tcp udp sctp 1.使用者資料報協議udp tcp是乙個位元組流服務,udp是無連線的,udp客戶和伺服器之間不存在任何長期的關係 2.傳輸控制協議tcp tcp是可靠地,傳送對端乙個資料時要求對端必須返回確認tcp提供流量控制 tcp的連線是全雙工的 3.六...

UNP讀書筆記一 Socket程式設計的簡單介紹

一 源 編譯 也是在網上找的源 編譯方法,也很簡單。二 幾個重要的資料結構和函式 1 sockaddr和sockaddr in結構 struct sockaddr struct sockaddr in struct in addr 這兩個結構體大小一樣,名字也比較像。socket api最初設計的時...

UNP讀書筆記一 Socket程式設計的簡單介紹

一 源 編譯 也是在網上找的源 編譯方法,也很簡單。二 幾個重要的資料結構和函式 1 sockaddr和sockaddr in結構 struct sockaddr struct sockaddr in struct in addr 這兩個結構體大小一樣,名字也比較像。socket api最初設計的時...