TCP網路程式設計流程及Socket API基本用法

2021-08-14 18:29:55 字數 1104 閱讀 9571

socket api基本用法

socket函式

int socket(int domain, int type, intprotocol);

包含標頭檔案

作用:建立乙個套接字用於通訊

domain:af_inet(ipv4)   af_inet6(ipv6)

type:        sock_stream(tcp)    sock_dgram(udp)

intprotocol:通常預設為0.

bind函式

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

包含標頭檔案

sockfd:socket函式返回的套接字

addrlen:位址長度

listen函式

int listen(int sockfd,int backlog);

包含標頭檔案

對於給定的監聽套介面,核心要維護兩個佇列:

1、已由客戶發出並到達伺服器,伺服器正在等待完成相應的tcp三路握手過程

2、已完成連線的佇列

已完成連線的佇列和正在進行三次握手的佇列總和不能超過backlog的長度

accept函式

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

包含標頭檔案

功能:從已完成連線佇列返回第乙個連線,如果已完成連線隊列為空,則阻塞。

函式的返回值是乙個新的client_fd,客戶端的套接字位址,客戶端位址在addr上

connect函式

int connect(int sockfd, const struct sockaddr *addr, socklen_taddrlen);

包含標頭檔案

功能:建立乙個連線至addr所指定的套接字

TCP協議及程式設計流程

面向連線 傳送端傳送次數與接收方接收次數無關 send將資料發入傳送緩衝區 recv同理接收至接收緩衝區 傳輸與接收的資料不會因send次數分開,資料是乙個整體,是乙個位元組流 tcp報頭結構 保證能到達 應答確認 超時重傳 保證不亂序 保證不失真 滑動視窗,擁塞控制 待完善,不要做參考 零視窗零視...

Linux下TCP網路程式設計流程

常見的兩種模型 c s模型 客戶端 伺服器端 和ptp 點對點 模型。下面為tcp網路流程程式設計兩台主機之間資料傳送的具體 示例。示例 檔案server.c include include include include include include include include void m...

TCP程式設計流程

tcp是傳輸控制協議的簡稱,是tcp ip體系中的面向連線的傳輸層協議,在網路中提供全雙工的 可靠的服務。在上一章節中可知,tcp通訊是通過套接字通訊機制實現的,具體為流式套接字,用來實現乙個面向連線,可靠的資料傳輸服務。目前較為流行的網路程式設計模型是客戶端 伺服器的通訊模式。伺服器和客戶端使用t...