/*需求:通过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();
}
}