導航:首頁 > 編程知識 > udp應用編程技術的選擇有哪些

udp應用編程技術的選擇有哪些

發布時間:2023-03-17 21:35:22

❶ TCP與UDP應用的例子有哪些

1、TCP應用

(1)FTP:文件傳輸協議;

(2)SSH:安全登錄、文件傳送(SCP)和埠重定向;

(3)Telnet:不安全的文本傳送;

(4)SMTP:簡單郵件傳輸協議Simple Mail Transfer Protocol (E-mail);

(5)HTTP:超文本傳送協議 (WWW);

2、UDP應用

(1)流媒體

採用TCP,一旦發生丟包,TCP會將後續包緩存起來,等前面的包重傳並接收到後再繼續發送,延遲會越來越大。基於UDP的協議如WebRTC是極佳的選擇。

(2)實時游戲

對實時要求較為嚴格的情況下,採用自定義的可靠UDP協議,比如Enet、RakNet(用戶有sony online game、minecraft)等,自定義重傳策略,能夠把丟包產生的延遲降到最低,盡量減少網路問題對游戲性造成的影響。

採用UDP的經典游戲如FPS游戲Quake、CS,著名的游戲引擎Unity3D採用的也是RakNet。

(3)物聯網

2014年google旗下的Nest建立Thread Group,推出了物聯網通信協議Thread,完善物聯網通信。

全球將近50%的人都在使用互聯網,人們不斷的追求更快、更好的服務,一切都在變化,在越來越多的領域,UDP將會搶佔TCP的主導地位。

(4)QQ 文件傳輸、QQ語音、QQ視頻

對於網路通訊質量要求不高的情況下,要求網路通訊速度能盡量快捷方便,就可以使用UDP技術。

❷ 列舉TCP和UDP協議的常用應用

一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。

在現場測控領域,面向的是分布化的控制器、監測器等,其應用場合環境比較惡劣,這樣就對待傳輸數據提出了不同的要求,如實時、抗干擾性、安全性等。

基於此,現場通信中,若某一應用要將一組數據傳送給網路中的另一個節點,可由UDP進程將數據加上報頭後傳送給IP進程,UDP協議省去了建立連接和拆除連接的過程!取消了重發檢驗機制,能夠達到較高的通信速率。

TCP和UDP協議是TCP/IP協議的核心。TCP傳輸協議:TCP 協議是一TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)協議屬於傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路復用。



通過面向連接、端到端和可靠的數據包發送。通俗說,它是事先為所發送的數據開辟出連接好的通道,然後再進行數據發送;而UDP則不為IP提供可靠性、流控或差錯恢復功能。

❸ 在javasocket網路編程中,開發基於udp協議的程序使用的套接字有哪些

Socket套接字,是由系統提供用於網路通信的技術(操作系統給應用程序提供的一組API叫做Socket API),是基於TCP/IP協議的網路通信的基本操作單元。基於Socket套接字的網路程序開發就是網路編程。

socket可以視為是應用層和傳輸層之間的通信橋梁;
傳輸層的核心協議有兩種:TCP,UDP;socket API也有對應的兩組,由於TCP和UDP協議差別很大,因此,這兩組API差別也挺大。

分類:
Socket套接字主要針對傳輸層協議劃分為如下三類:

流套接字:使用傳輸層TCP協議
TCP,即Transmission Control Protocol(傳輸控制協議),傳輸層協議;
TCP的特點:

有連接:像打電話,得先接通,才能交互數據;
可靠傳輸:傳輸過程中,發送方知道接收方有沒有收到數據.(打電話就是可靠傳輸);
面向位元組流:以位元組為單位進行傳輸.(非常類似於文件操作中的位元組流);
全雙工:一條鏈路,雙向通信;
有接收緩沖區,也有發送緩沖區。
大小不限
對於位元組流來說,可以簡單的理解為,傳輸數據是基於IO流,流式數據的特徵就是在IO流沒有關閉的情況下,是無邊界的數據,可以多次發送,也可以分開多次接收。

數據報套接字:使用傳輸層UDP協議
UDP,即User Datagram Protocol(用戶數據報協議),傳輸層協議。
UDP的特點:

無連接:像發微信,不需要接通,直接就能發數據;
不可靠傳輸:傳輸過程中,發送方不知道接收方有沒有收到數據.(發微信就是不可靠傳輸);
面向數據報:以數據報為單位進行傳輸(一個數據報都會明確大小)一次發送/接收必須是一個完整的數據報,不能是半個,也不能是一個半;
全雙工:一條鏈路,雙向通信;
有接收緩沖區,無發送緩沖區;
大小受限:一次最多傳輸64k;
對於數據報來說,可以簡單的理解為,傳輸數據是一塊一塊的,發送一塊數據假如100個位元組,必須一次發送,接收也必須一次接收100個位元組,而不能分100次,每次接收1個位元組。

原始套接字
原始套接字用於自定義傳輸層協議,用於讀寫內核沒有處理的IP協議數據。

二、UDP數據報套接字編程
UDPSocket中,主要涉及到兩類:DatagramSocket、DatagramPacket;

DatagramSocket API
DatagramSocket 創建了一個UDP版本的Socket對象,用於發送和接收UDP數據報,代表著操作系統中的一個socket文件,(操作系統實現的功能–>)代表著網卡硬體設備的抽象體現。

DatagramSocket 構造方法:

方法簽名 方法說明
DatagramSocket() 創建一個UDP數據報套接字的Socket,綁定到本機任意一個隨機埠(一般用於客戶端)
DatagramSocket(int port) 創建一個UDP數據報套接字的Socket,綁定到本機指定的埠(一般用於服務端)
DatagramSocket 方法:

方法簽名 方法說明
void receive(DatagramPacket p) 從此套接字接收數據報(如果沒有接收到數據報,該方法會阻塞等待)
void send(DatagramPacket p) 從此套接字發送數據報包(不會阻塞等待,直接發送)
void close() 關閉此數據報套接字
DatagramPacket API
代表了一個UDP數據報,是UDP Socket發送和接收的數據報,每次發送/接收數據報,都是在傳輸一個DatagramPacket對象。

DatagramPacket 構造方法:

方法簽名 方法說明
DatagramPacket(byte[] buf, int length) 構造一個DatagramPacket以用來接收數據報,接收的數據保存在位元組數組(第一個參數buf)中,接收指定長度(第二個參數length)
DatagramPacket(byte[] buf, int offset, int length,SocketAddress address) 構造一個DatagramPacket以用來發送數據報,發送的數據為位元組數組(第一個參數buf)中,從0到指定長度(第二個參數length)。address指定目的主機的IP和埠號
DatagramPacket 方法:

方法簽名 方法說明
InetAddress getAddress() 從接收的數據報中,獲取發送端主機IP地址;或從發送的數據報中,獲取接收端主機IP地址
int getPort() 從接收的數據報中,獲取發送端主機的埠號;或從發送的數據報中,獲取接收端主機埠號
byte[] getData() 獲取數據報中的數據
構造UDP發送的數據報時,需要傳入 SocketAddress ,該對象可以使用 InetSocketAddress 來創建。

InetSocketAddress API
InetSocketAddress ( SocketAddress 的子類 )構造方法:

方法簽名 方法說明
InetSocketAddress(InetAddress addr, int port) 創建一個Socket地址,包含IP地址和埠號
示例1:寫一個簡單的客戶端服務程序,回顯服務(EchoSever)
在這里插入圖片描述
構建Socket對象有很多失敗的可能:

埠號已經被佔用,同一個主機的兩個程序不能有相同的埠號(這就好比兩個人不能擁有相同的電話號碼);
此處,多個進程不能綁定同一個埠號,但是一個進程可以綁定多個埠,(這就好比一個人可以擁有多個手機號),一個進程可以創建多個Socket對象,每個Socket都綁定自己的埠。
每個進程能夠打開的文件個數是有上限的,如果進程之間已經打開了很多文件,就可能導致此時的Socket文件不能順利打開;
在這里插入圖片描述
這個長度不一定是1024,假設這里的UDP數據最長是1024,實際的數據可能不夠1024.

在這里插入圖片描述
這里的參數不再是一個空的位元組數組了,response是剛才根據請求計算的得到的響應,是非空的,DatagramPacket 裡面的數據就是String response的數據。

response.getBytes().length:這里拿到的是位元組數組的長度(位元組的個數),而response.length得到的是字元的長度。

五元組
一次通信是由5個核心信息描述的:源IP、 源埠、 目的IP、 目的埠、 協議類型。

站在客戶端角度:

源IP:本機IP;
源埠:系統分配的埠;
目的IP:伺服器的IP;
目的埠:伺服器的埠;
協議類型:TCP;
站在伺服器的角度:

源IP:伺服器程序本機的IP;
源埠:伺服器綁定的埠(此處手動指定了9090);
目的IP:包含在收到的數據報中(客戶端的IP);
目的埠:包含在收到的數據報中(客戶端的埠);
協議類型:UDP;

閱讀全文

與udp應用編程技術的選擇有哪些相關的資料

熱點內容
合成ts文件後順序亂了 瀏覽:952
三星s4文件傳電腦 瀏覽:161
Lgplc怎麼編程 瀏覽:471
主要的水稻資料庫有哪些 瀏覽:293
iphone霸氣壁紙 瀏覽:32
系統文件備份在哪個文件夾 瀏覽:53
win81升級win10卡住 瀏覽:766
jsp調用微信公眾號支付 瀏覽:767
微信模板消息推送java 瀏覽:519
傳700MB的文件要多少流量 瀏覽:777
想做家教可以在哪些app上 瀏覽:868
5s怎麼升級到84 瀏覽:862
什麼編程語言適合windows 瀏覽:982
迷你世界編程器如何使用 瀏覽:871
財稅201215號文件代碼 瀏覽:456
win1064位sp1 瀏覽:118
6S微信老出現半截屏幕 瀏覽:457
安卓手機怎麼傳送文件 瀏覽:541
蘋果6S47不想要了換多少錢 瀏覽:615
ipadair2如何關閉程序 瀏覽:130

友情鏈接