網路程式設計 TCP

2021-08-11 03:00:27 字數 2267 閱讀 9554

即有傳送緩衝區、接收緩衝區,傳送次數和接收次數不一定對等。報頭長,成本高,需要搭載更多的資料。
1.三次握手

通過對ack的確認,建立可靠連線。有超時重傳機制

2.四次揮手

有可能伺服器處理資料的時間較短,即三次揮手

3.狀態圖

2、保證遲來的資料報能被識別並丟棄

4.tcp狀態轉移過程

5.tcp報頭

domain::    協議簇 af_inet

type:: 選擇協議 sock_stream(tcp) sock_dgram(udp)

protocol:: 0

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

addr::  指定 ip 位址和埠號

struct sockaddr_in

struct in_addr

int listen(int sockfd, int size);

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

返回值: 獲取到的和客戶端連線的檔案描述符

int connect(int sockfd, struct sockaddr* addr, int addrlen);

addr::  要連線的伺服器的 ip 位址和埠號
1.伺服器端
#include 

#include

#include

#include

#include

#include

#include

#include

void main()

; recv(c,buff,127,0);

if(strncmp(buff,"end",3)== 0)

printf("recv::%s\n",buff);

send(c,"i know",strlen("i know"),0);

close(c);

}close(sockfd);

}

#include 

#include

#include

#include

#include

#include

#include

#include

void main()

; fgets(buff,128,stdin);

send(sockfd,buff,strlen(buff),0);

printf("success!\n");

if(strncmp(buff,"end",3)==0)

recv(sockfd,buff,127,0);

printf("recv:: %s\n",buff);

}close(sockfd);

}

TCP網路程式設計

基於tcp 通訊模型 由上圖可以得出tcp通訊的步驟如下 服務端 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 設定允許的最大連線數,用函式listen 4 等待來著客戶端的連線請求,用函式accept 5 收發資料,用函式send 和...

網路程式設計 TCP

客戶端 1.建立客戶端的socket服務,指定目的主機和埠 2.為了傳送資料,應該獲取socket中的輸出流 3.獲取socket中的輸入流來獲取服務端的反饋資料 4.關閉資源 服務端 1.建立服務端的serversocket服務,並監聽乙個埠 2.通過accept方法 等待並獲取連線過來的客戶端s...

網路程式設計 TCP

網路程式設計的傳輸層協議一般分為udp和tcp 其中tcp協議是面向連線的,可靠的,流式服務的協議。簡而言之就是安全性完整性更高的,但效率低於udp的協議。本文將重點涉及linux下具體的採取tcp協議的網路程式設計 實現。首先最基本的要有兩份 即伺服器端和客戶端各乙份。伺服器端程式設計流程如下 1...