/*需求:通過UDP傳輸方式,将一段文字資料發送出去
* 1.建立udpsocket服務
* 2.提供資料,将資料封裝到資料包中
* 3.通過socket服務的發送功能,将資料包發出去
* 4.關閉資源
*
*/
public class UPDsend {
public static void main(String[] args) throws IOException {
//1.建立udp服務,通過DatagramSocket對象
DatagramSocket ds=new DatagramSocket();
//2.提供資料,将資料封裝到資料包中
byte[] buf="udpdata".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("ip"),10000);
//3.通過socket服務的發送功能,将資料包發出去
ds.send(dp);
//4.關閉資源
ds.close();
}
}
//*************************************************
/*
* 需求:定義一個應用程式,用于接收并處理資料的
* 1.定義udpsocket服務,通常會監聽一個端口
* 2.定義一個資料包,因為要存儲接收到的位元組資料
* 3.通過socket服務的receive方法将收到的資料存入已定義好的資料包中
* 4.通過資料包中對象的特有功能,将這些不同的資料取出,列印在控制台
* 5.關閉資源
*/
public class UDPreceive {
public static void main(String[] args) throws IOException {
//1.建立udp socket
DatagramSocket ds=new DatagramSocket(10000);//設定端口
//2.定義資料包,用于存儲資料
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//3.通過socket服務的receive方法将收到的資料存入已定義好的資料包中
ds.receive(dp);
//4.通過資料包的方法擷取其中資料
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+" "+data+" "+port);
//5.關閉
ds.close();
}
}