網路程式設計 TCP與UDP

2021-09-26 02:55:03 字數 2237 閱讀 9493

tcp(transmission control protocol 傳輸控制協議)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,由ietf的rfc 793定義。

當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線,而終止乙個連線要經過四次揮手。詳情:三次握手和四次揮手。

**基本實現:

socket:此類實現客戶端套接字(也可以就叫「套接字」)。

serversocket:此類實現伺服器套接字。

注意:服務端和客戶端只是角色上的分配,當兩者一旦產生連線,則沒有明確角色

兩者之間的通訊都是通過socket來完成

accept()偵聽並接受到此套接字的連線。如果沒有連線請求,則會阻塞等待

getinputstream() 返回此套接字的輸入流。

getoutputstream() 返回此套接字的輸出流。

//客戶端

//socket

//此類實現客戶端套接字(也可以就叫「套接字」)。套接字是兩台機器間通訊的端點。

public class testclient

}}

//在連線成功之前,是乙個角色分配

//serversocket

//此類實現伺服器套接字。

//服務端

public class testserver

// while(true)

}}

//負責輸入

public class testin implements runnable

@override

public void run()

} catch (ioexception e)

}}

udp 是user datagram protocol的簡稱, 中文名是使用者資料報協議,是osi(open system interconnection,開放式系統互聯) 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。

它只是把應用程式傳給ip層的資料報傳送出去,但是並不能保證它們能到達目的地。由於udp在傳輸資料報前不用在客戶和伺服器之間建立乙個連線,且沒有超時重發等機制,故而傳輸速度很快。

**基本實現:

//udp:基本流程

//1步:建立datagramsocket物件,接受端需要指定埠號,傳送端預設無參

//2步:建立datagrampacket資料報物件,接受端需要指定接受大小,傳送端需要指定inetaddress和port

//3步:datagramsocket中的send()傳送資料報,receive()接受資料報

//注意:send不管是否有接收端,不會等待接收端,直接傳送出去

//receive不管傳送端所傳送資料大小,會等待資料報接受

//datagrampacket(byte buf, int length, inetaddress address, int port)

//傳送方

public class testsend

}

//接受方

public class testrecive

}

1、tcp面向連線,當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料;

udp是無連線的,面向事務,無需建立連線就可以傳送封裝包資料。

2、tcp是可靠的:tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料的傳送和接收順序;

udp不可靠:udp盡最大努力交付,即不保證可靠交付。

3、tcp連線只能是點到點的;

udp支援一對一,一對多,多對一和多對多的互動通訊, 由於傳輸資料不建立連線,因此也就不需要維護連線狀態,包括收發狀態等,因此一台服務機可同時向多個客戶機傳輸相同的訊息。

4、tcp對系統資源消耗大;

udp:由於udp的特性,它不屬於連線型協議,因而具有資源消耗小,處理速度快的優點。

5、tcp:基於位元組流,流模式;

udp:將網路資料流量壓縮成資料報的形式,資料報模式。

6、tcp:大量資料;udp:少量資料。

python網路程式設計 TCP與UDP

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

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

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

網路程式設計之TCP與UDP協議

tcp udp對比 tcp面向連線 如打 要先撥號建立連線 udp 是無連線的,即傳送資料之前不需要建立連線 tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達 udp盡最大努力交付,即不保證可靠交付 每一條tcp連線只能是點到點的 udp支援 對一,對多,...