TCP與UDP在socket程式設計中的區別

2021-06-23 02:14:26 字數 1900 閱讀 9531

一、tcp與udp的區別  基於連線與無連線  

對系統資源的要求(tcp較多,udp少)    udp程式結構較簡單    流模式與資料報模式  

tcp保證資料正確性,udp可能丟包    tcp保證資料順序,udp不保證  

部分滿足以下幾點要求時,應該採用udp 面向資料報方式 網路資料大多為短訊息    擁有大量client  

對資料安全性無特殊要求  

網路負擔非常重,但對響應速度要求高    具體程式設計時的區別 socket()的引數不同    udp server不需要呼叫listen和accept    udp收發資料用sendto/recvfrom函式    tcp:位址資訊在connect/accept時確定  

二、man----socket 

通過檢視socket的man手冊可以看到socket函式的第乙個引數的值可以為下面這些值:  

name purpose  

pf_unix, pf_local local communication    pf_inet ipv4 internet protocols    pf_inet6 ipv6 internet protocols    pf_ipx ipx - novell protocols  

pf_netlink kernel user inte***ce device    pf_x25 itu-t x.25 / iso-8208 protocol    pf_ax25 amateur radio ax.25 protocol  

pf_packet low level packet inte***ce   

三、程式設計區別 

sock_stream這種的特點是面向連線的,即每次收發資料之前必須通過connect建立連線,也是雙向的,即任何一方都可以收發資料,協議本身提供了一些保障機制保證它是可靠的、有序的,即每個包按照傳送的順序到達接收方。   

基於上述不同,udp和tcp程式設計步驟也有些不同,如下:    tcp程式設計的伺服器端一般步驟是:    1、建立乙個socket,用函式socket();  

2、設定socket屬性,用函式setsockopt(); * 可選    3、繫結ip位址、埠等資訊到socket上,用函式bind();    4、開啟監聽,用函式listen();  

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

6、收發資料,用函式send()和recv(),或者read()和write();    7、關閉網路連線;    8、關閉監聽;   

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

1、建立乙個socket,用函式socket();  

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

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選    4、設定要連線的對方的ip位址和埠等屬性;    5、連線伺服器,用函式connect();  

6、收發資料,用函式send()和recv(),或者read()和write();    7、關閉網路連線;    

與之對應的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、關閉網路連線;

socket程式設計 TCP與UDP

1.tcp與udp的優缺點 2.tcp與udp在遊戲中的應用場景 tcp 可以容忍延遲並且有很好的遮蔽延遲的設計,如紙牌類和mmo udp 不能容忍延遲,如dota類和動作類 3.tcp與udp 實現 只實現了基本收發功能,沒有進行合理性分析,tcp有客戶端和伺服器之分,udp則沒有但考慮到區分 中...

TCP和UDP的區別及socket網路程式設計步驟

tcp和udp的區別 1.連線 tcp是面向連線的傳輸層協議,即傳輸資料之前必須先建立好連線。udp無連線。2.服務物件 tcp是點對點的兩點間服務,即一條tcp連線只能有兩個端點 udp支援一對一,一對多,多對一,多對多的互動通訊。3.可靠性 tcp是可靠交付 無差錯,不丟失,不重複,按序到達。u...

TCP與UDP在socket程式設計中的區別

一 tcp與udp的區別 基於連線與無連線 對系統資源的要求 tcp較多,udp少 udp程式結構較簡單 流模式與資料報模式 tcp保證資料正確性,udp可能丟包 tcp保證資料順序,udp不保證 部分滿足以下幾點要求時,應該採用udp 面向資料報方式 網路資料大多為短訊息 擁有大量client 對...