TCP和UDP區別及用法

2021-08-21 06:45:05 字數 2928 閱讀 3464

1、tcp與udp區別總結:

1、tcp面向連線

(如打**要先撥號建立連線);

udp是無連線

的,即傳送資料之前不需要建立連線

tcp提供可靠的服務

。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;

udp盡最大努力交付,即不保證可靠交付

udp具有較好的實時性

,工作效率比tcp高,適用於對高速傳輸和實時性有較高的通訊或廣播通訊。

tcp對系統資源要求較多,udp對系統資源要求較少。

3、udp和tcp程式設計步驟也有些不同,如下:

tcp: 

tcp程式設計的伺服器端一般步驟是: 

1、建立乙個socket

,用函式socket();     socket socketlisten =

socket

(af_inet,sock_stream, ipproto_tcp);

2、設定socket屬性,用函式setsockopt(); * 可選 

3、繫結ip位址、埠

等資訊到socket上,用函式bind(); socket_error = 

bind

(socketlisten,(const sockaddr*)&addr,sizeof(addr))

4、開啟監聽,

用函式listen();                 socket_error == 

listen

(socketlisten,2)

5、接收客戶端上來的連線,用函式accept()

;    socket socketwaiter = 

accept

(socketlisten,

_out_    

struct

sockaddr *addr

_inout_  

int*addrlen

);6、收發資料,用函式send()和recv(),或者read()和write(); 

7、關閉網路連線; closesocket(socketlisten);

closesocket(socketwaiter);

8、關閉監聽; 

sock_stream這種的特點是面向連線的,即每次收發資料之前必須通過connect建立連線,

tcp程式設計的客戶端一般步驟是: 

1、建立乙個socket

,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選 

4、設定要連線的對方的ip位址和埠等屬性; 

5、連線伺服器,

用函式connect(); 

6、收發資料,用函式send()和recv(),或者read()和write(); 

7、關閉網路連線;

int send(

_in_  socket s, //向哪個socket傳送,accept返回的socket。

_in_  const

char *buf,

_in_  int len,

_in_  int flags

); 由於

recv(socketclient,szbuf,sizeof(szbuf),0);

udp:

與之對應的udp程式設計步驟要簡單許多,分別如下: 

udp程式設計的伺服器端一般步驟是: 

1、建立乙個socket,

用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();

4、迴圈接收資料,用函式recvfrom(); 

5、關閉網路連線; 

udp程式設計的客戶端一般步驟是: 

1、建立乙個socket

,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選 

4、設定對方的ip位址和埠等屬性; 

5、傳送資料,用函式sendto(); 

6、關閉網路連線;

int recvfrom(

_in_         socket s, //繫結的socket

_out_        char *buf,

_in_         int len,

_in_         int flags,

_out_        struct sockaddr *from, //用來接收對方的

_inout_opt_  int *fromlen

);

int nres=

recvfrom

(pthis->m_socketlisten,szbuf,sizeof(szbuf),0,(sockaddr*)&addrclient,&nsize);//0處標誌位

sendto(m_socketlisten,szbuffer,nsize,0,(const sockaddr*)&addr,sizeof(sockaddr_in))

tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。

bool optval=true;

setsockopt(m_socketlisten,sol_socket,so_broadcast,(const char *)&optval,sizeof(bool));

//bool benable=true;

//ioctlsocket(m_socketlisten,fionbio,(u_long*)&benable);

TCP和UDP區別及優缺點

udp是乙個面向無連線的通訊協議,udp資料報括目的埠號和源埠號資訊 優點 速度快 操作簡單 要求系統資源較少 通訊不需要連線 可以實現廣播傳送。缺點 在傳遞資料前不與對方建立連線 接收資料不傳送確認訊號 傳送端不知道傳送的資料是否被正確接收 不重 送資料 不可靠。tcp是乙個面向連線的通訊協議,通...

TCP和UDP及它們的區別

tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於廣播和細節控制交給應用的通訊傳輸 udp user datagram protocol udp不提供複雜的控制機制,利用ip提供面向無連線的通訊服務。並且它是將應用程式發來的資料在收到的那一刻,立刻按照原樣傳送...

TCP和UDP的優缺點及區別

tcp的優點 可靠,穩定 tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認 視窗 重傳 擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。tcp的缺點 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞...