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

2022-08-31 08:36:07 字數 1550 閱讀 7487

tcp/ip程式設計

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

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

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

視同serversocket和socket實現伺服器端和客戶端的socket通訊

我們以客戶端傳送資料伺服器端接收資料為例看看整個操作流程

服務端

//

伺服器端接收資料

public

class

server

outputstream.flush();

outputstream.close();

inputstream.close();

socket.close();

serversocket.close();

} catch

(exception e)

}}

客戶端

//

客戶端傳送資料

public

class

client

outputstream.flush();

outputstream.close();

inputstream.close();

socket.close();

} catch

(exception e)

}}

結論:由上過程可知,tcp/ip程式設計在建立socket時就已經建立了連線,固定了不可更改,只能是點到點的傳輸

udp程式設計

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

datagramsocket:用來傳送和接受資料報的套接字

datagrampacket:表示資料報

客戶端:

public

class

client

catch

(exception e)

}}

服務端:

public

class

server

catch

(exception e)

}}

結論:udp是先指定乙個服務端埠號,然後通過資料報來確定連線,從而可以實現一對

一、一對多、多對

一、多對多的互動通訊

兩者比較:

1、tcp面向連線,傳送資料前要先建立連線;udp是無連線的,傳送資料前不需要建立連線

2、tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,不保證可靠交付;

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

4、每一條tcp連線只能是點到點;udp支援一對

一、一對多、多對

一、多對多的互動通訊

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

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

網路程式設計 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 ...