為了方便開發網路應用程式,美國伯克利大學在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 ...