通訊協議 UDP通訊

2021-09-25 15:50:25 字數 2054 閱讀 2366

通訊協議

通訊協議是udp/tcp通訊的基礎,沒有通訊協議的「通訊」是沒有任何意義上的,通訊協議不是底層函式或者高深的原理,而是程式設計師之間的一種文字約定。

資料在網路上是以位元組的形式傳送的(底層是01碼),我們在讀取到資料之後,該以怎樣的方式對它進行解碼呢?這就是我們在通訊之前需要制定的通訊協議。如果程式設計師不知道這個協議,那麼他拿到的就是一堆無意義的資料。

以udp為例:

傳送端我們約定,我們所傳送資料的第乙個位元組代表了資料的種類

1:代表iamge

2:代表message

3:代表file

接下來,所有的位元組都是真正需要傳遞的資料。

在前面的基礎上,所有的位元組都要進行減1操作(簡單加密,接收端讀取資料的時候相應要進行加1操作)。

接收端這個資料傳送到伺服器之後,伺服器首先讀取這個資料報,然後對每乙個位元組進行加1操作

然後對第乙個位元組進行判斷,如果第乙個位元組是1,那麼伺服器就知道這個資料代表了乙個,

如果第乙個位元組是2,這段資料就是一段文字訊息,如果第乙個位元組是3,這段資料就代表了乙個檔案。

這就是乙個簡單的使用通訊協議並且對資料進行加密的例子,這個協議,是雙方提前約定好的。

在我們制定好自己的通訊協議之後,我們就可以著手了解udp通訊的實現了。

udp通訊

對於在同一網段通訊的程式來說,udp是很好的選擇。

//@param

public int local_null_port=15000;

public int local_receive_port=14000;

public int receiver_port=13000;

public string send_socket="***.***.**.***";//傳送端ipv4位址

public string local_socket="***.***.**.**";//接收端ipv4位址

我們首先構建接收端的**

socketaddress localaddr = new inetsocketaddress(local_socket, local_receive_port);//本地位址

datagramsocket recvsocket = null;//接收的伺服器udp埠

try catch (socketexception e)

datagrampacket packet = new datagrampacket(buffer, buffer.length);//建立接收資料報物件

try catch (ioexception e)

byte bytes =packet.getdata();//獲取資料

對獲取的byte陣列做一些處理

public void handle(byte bs)

}public void dosomething_a()

public void dosomething_b()

public void dosomething_c()

構建傳送端

socketaddress localaddr = new inetsocketaddress(local_socket,local_null_port); 

datagramsocket dsender = null;//2.建立傳送的socket物件

try catch (socketexception e)

byte buffer = new byte[40000];

buffer = getbyte(buffer);

datagrampacket dp = new datagrampacket(buffer, buffer.length, destadd); //打包

try catch (ioexception e)

對傳送資料的處理

public byte getbyte(byte bs)

UDP通訊協議

在做手機和服務端通訊時,udp是其中可用協議之一。不過udp的缺點在於不能得知傳送是否成功,可能會存在掉包的情況但是傳送方卻並不知道。不過既然udp能存在,自然有它使用的業務場景。udp其實很簡單,最主要的兩個類datagramsocket和datagrampacket udp接收 while tr...

網路通訊協議 UDP

udp 是user dategram protocol 簡稱 使用者資料報協議 是osi參考模型當中的一種無連線的傳輸層協議,ietf rfc 768是udp的正式規範 udp 和 tcp協議一樣也是用於處理資料報,是一種無連線的傳輸層協議 補充 連線服務 例子 你要寄乙份信件,你要讓你認識的人去送...

tcp和udp通訊協議

tcp udp tcp與udp基本區別 1.基於連線與無連線 2.tcp要求系統資源較多,udp較少 3.udp程式結構較簡單 4.流模式 tcp 與資料報模式 udp 5.tcp保證資料正確性,udp可能丟包 6.tcp保證資料順序,udp不保證 udp應用場景 1.面向資料報方式 2.網路資料大...