UDP完成數據的發送
/*
* 發送端
*/
publicclass UDPSend {
publicstaticvoid main(String[ ] args) throwsIOException {
//1,創建DatagramSocket對象
DatagramSocket sendSocket = newDatagramSocket();
//2,創建DatagramPacket對象,並封裝數據
//構造數據報包,用來將長度爲 length 的包發送到指定主機上的指定端口號。
byte[ ] buffer = "hello,UDP".getBytes();
DatagramPacket dp = newDatagramPacket(buffer, buffer.length, InetAddress.getByName("192.168.75.58"),8888);
//3,發送數據
sendSocket.send(dp);
//4,釋放流資源
sendSocket.close();
}
}
UDP完成數據的接收
/*
* UDP接收端
*/
publicclass UDPReceive {
publicstaticvoid main(String[ ] args) throws IOException {
//1,創建DatagramSocket對象,並指定端口號
DatagramSocket receiveSocket = new DatagramSocket(8888);
//2,創建DatagramPacket對象, 創建一個空的倉庫
byte[ ] buffer = newbyte[1024];
DatagramPacket dp = new DatagramPacket(buffer,1024);
//3,接收數據存儲到DatagramPacket對象中
receiveSocket.receive(dp);
//4,獲取DatagramPacket對象的內容
//誰發來的數據 getAddress()
InetAddress ipAddress = dp.getAddress();
String ip = ipAddress.getHostAddress();//獲取到了IP地址
byte[ ] data = dp.getData();
//發來了多少數據 getLenth()
int length = dp.getLength();
//顯示收到的數據
String dataStr = new String(data,0,length);
System.out.println("IP地址:"+ip+ "數據是"+ dataStr);
//5,釋放流資源
receiveSocket.close();
}
}