網路程式設計TCP與UDP的區別

2021-10-03 13:50:13 字數 1618 閱讀 3389

為了方便開發網路應用程式,美國伯克利大學在unix上實現的一種應用程式訪問網路的通訊協議socket,socket的出現使程式設計師可以方便的訪問tcp/ip(transmission control protocol/internet protocol)即傳輸控制協議/網間協議

使用tcp/ip的套接字進行通訊

伺服器程式將乙個套接字繫結到乙個特定的埠,並通過此套接字等待和監聽客戶端埠的連線請求

客戶端程式根據伺服器程式所在的主機名和埠發出連線請求

示意圖

upd是使用者資料報協議,基於upd的socket程式設計是一種非鏈結的socket通訊,它提供的是無連線、不可靠的資訊傳送服務

示意圖:

tcp面向連線,傳送資料前要建立連線;upd是無連線的,傳送資料前不需要建立連線tcp傳送的資料,無差錯、不丟失、不重複,且按序到達;upd盡最大努力交付,不保證可靠交付;(upd傳輸效率高,但傳輸過程中質量沒有很高的保證,適用於例如傳、丟幾個畫素總沒人看的出來)

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

每一條tcp連線只能是點到點的,upd支援一對

一、一對多、多對一和多對多的互動通訊

接下來我們通過幾段**來解釋一下tcp與udp的區別,尤其是第一點與第四點

tcp:我們發現,tcp的傳輸是必須建立乙個一對一的連線的

public

class

server

outputstream.

flush()

; outputstream.

close()

; inputstream.

close()

; socket.

close()

;}catch

(ioexception e)

}}

public

class

client

outputstream.

flush()

; outputstream.

close()

; inputstream.

close()

; socket.

close()

;}catch

(exception e)

}}

upd:每個埠既是客戶端也是伺服器端,實現多對多互動通訊

public

class

server

catch

(exception e)

}}

public

class

client

catch

(exception e)

}}

網路程式設計 TCP與UDP的區別

tcp ip程式設計 使用tcp ip的套接字 socket 進行通訊 伺服器程式將乙個套接字繫結到乙個特定的埠,並通過此套接字等待和監聽客戶端到埠的連線請求 客戶端程式根據伺服器程式所在的主機名和埠發出連線請求 視同serversocket和socket實現伺服器端和客戶端的socket通訊 我們...

網路程式設計 TCP與UDP

tcp transmission control protocol 傳輸控制協議 是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議,由ietf的rfc 793定義。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流...

python網路程式設計 TCP與UDP

tcp與udp的區別 tcp速度慢,穩定。udp速度快,不穩定,易丟資料。udp 客戶端 import socket clientsocket socket.socket socket.af inet,socket.sock dgram 建立套接字 sendtoaddr 192.168.1.111 ...