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...