SOCK_DGRAM和區別

sock_stream 是有保障的(即能保證數據正確傳送到對方)面向連接的SOCKET,多用於資料(如文件)傳送。sock_dgram 是無保障的面向消息的socket , 主要用於在網絡上發廣播信息。SOCK_STREAM是基於TCP的,數據傳輸比較有保障。

SOCK_DGRAM是基於UDP的,專門用於局域網,基於廣播SOCK_STREAM 是數據流,一般是tcp/ip協議的編程,SOCK_DGRAM分是數據抱,是udp協議網絡編程解釋一下:關於UDP

1、UDP協議適用端口分辨運行在同一臺設備上的多個應用程序,UDP有不提供數據報分組、組裝和不能對數據包進行排序的缺點。也就是說,當報文發送之後,是無法得知其是否安全完整到達的。

2、在網絡質量令人不十分滿意的環境下,UDP協議數據包丟失會比較嚴重。

3、但是由於UDP的特性:它不屬於連接型協議,因而具有資源消耗小,處理速度快的優點,所以通常音頻、視頻和普通數據在傳送時使用UDP較多,因爲它們即使偶爾丟失一兩個數據包,也不會對接收結果產生太大影響。關於TCP1、TCP提供端到端、全雙工通信;採用字節流方式,如果字節流太長,將其分段;提供緊急數據傳送功能。

 

2、TCP特性:(1)面向連接的傳輸; (2)端到端的通信; (3)高可靠性,確保傳輸數據的正確性,不出現丟失或亂序; (4)全雙工方式傳輸; (5)採用字節流方式,即以字節爲單位傳輸字節序列; (6)緊急數據傳送功能。所以如果你需要傳輸的數據是準確的,建議採用TCP,也就是sock_stream 如果你傳輸的是視頻音頻等數據,丟幾個包也無所謂的,可以採用UDP,也就是sock_dgram

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章