1. 程式人生 > 程式設計 >java網路之基於UDP的聊天程式示例解析

java網路之基於UDP的聊天程式示例解析

基於UDP的Socket通訊

UDP協議不是一種基於穩定連線的協議,是一種面向資料報包的通訊協議,不需要通訊雙方建立穩定的連線,也沒有所謂服務端和客戶的概念,資料報包在傳輸的時候不保證一定及時到達,也不能保證資料報包的到達順序,但是UDP協議傳輸效率要遠高於TCP/IP。

以下是一個基於UDP的簡單的訊息傳送接收程式。

訊息傳送方

1.建立一個數據報的網路通道

 DatagramSocket ds = new DatagramSocket();

2.準備需要傳輸的資料

String msg = "天王蓋地虎,小雞燉蘑菇!!!";

3.將需要傳送的資料打包成資料報包

DatagramPacket packet = new DatagramPacket(
      msg.getBytes(),//需要被髮送的資料的位元組陣列
      msg.getBytes().length,//傳送的資料長度(位元組陣列長度)
      InetAddress.getByName("localhost"),//接收方的ip
      1025	//接收方的埠				
    );

4.傳送資料報包

 ds.send(packet);

5.關閉通道

ds.close();

訊息接收方

1.建立一個數據報的網路通道,繫結到指定埠

DatagramSocket ds = new DatagramSocket(1025);

2.宣告位元組陣列,用於儲存接收的資料

byte[] b = new byte[1024];

3.準備資料報包(空包)

DatagramPacket packet = new DatagramPacket(b,b.length);

4.接收資料到資料報包中

ds.receive(packet);

5.將資料解析為字串並輸出

//接受到的資料(位元組陣列)實際長度
int len = packet.getLength();
//將位元組陣列轉換為字串
String s = new String(b,len);
System.out.println("收到的訊息:"+s);

如要進行迴圈接收,則將第4、第5步進行無限迴圈。

到此這篇關於java網路之基於UDP的聊天程式示例解析的文章就介紹到這了,更多相關java基於UDP的聊天程式內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!