udp Java程式設計實現通話
阿新 • • 發佈:2018-11-20
Java中網路通訊也稱作Socket(套接字、插座),要通訊的兩臺機器必須安裝Socket.
不同的協議就有不同的Socket。
udp通訊協議特點:
1.將資料及其源和目的的封裝為資料包,面向無連線
2.每個資料包大小限制64K中
3.因為無連線,所以不可靠
4.因為無連線,所以速度快
5.udp
比如:物管的對講機,feiQ,qq,遊戲。。。
UDP協議的Socket:
DatagramSocket UDP插座服務
DatagramPacket 資料包類
DatagramPacket(buf, length, address,port)
buf:
length:傳送資料內容的長度
address:傳送的目的IP地址物件
port
傳送端的使用步驟:
1.建立udp服務
2.準備資料,把資料封裝到資料包中。傳送端的資料包要帶上IP地址和埠號
3.呼叫udp服務
4.關閉資源
接收端的使用步驟:
1.建議udp服務
2.準備空的資料包接收資料
3.呼叫udp服務
4.關閉資源
package cn.udp;
importjava.io.IOException;
importjava.net.DatagramPacket;
importjava.net.DatagramSocket;
importjava.net.InetAddress;
public class Demo1sender {
public static void main(String[] args) throws IOException {
//建立udp服務
DatagramSocket datagramSocket=new DatagramSocket();
//準備資料,把資料封裝到資料包中
String data="這是一個UDP的例子";
DatagramPacket packet=new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);
//呼叫UDP的服務傳送資料包
datagramSocket.send(packet);
//關閉資源---實際上就是釋放佔用的埠號
datagramSocket.close();
}
}
package cn.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/*
接收端的使用步驟:
1.建議udp服務
2.準備空的資料包接收資料
3.呼叫udp服務
4.關閉資源
*/
public class Demo1Receive {
//接受端
public static void main(String[] args) throws IOException {
//建立udp服務
DatagramSocket socket=new DatagramSocket(9090);
//準備空的資料包,用於儲存資料
byte[] buf=new byte[1024];
DatagramPacket packet=new DatagramPacket(buf, buf.length);
//呼叫udp服務
socket.receive(packet);//
//資料實際上就是儲存到了byte位元組陣列中
//packet.getLength();獲取到了資料的長度
System.out.println("接收到的資料"+new String(buf,0,packet.getLength()));
//關閉資源
socket.close();
}
控制檯執行接收端,當沒有接收到資料時,一直在等待
Cmd執行傳送端
在cmd執行後,接受端接收到資料,程式停止
}