这是发送端
- public static void main(String[] args)throws Exception{
- //1、创建UDP socket服务
- DatagramSocket ds = new DatagramSocket();
- //2、确定数据,(即打包)并封装 byte[] int length InetAddress int port
- byte[] data = "udp,fuck U".getBytes();
- DatagramPacket dp = new DatagramPacket(data, data.length,InetAddress.getByName("192.168.1.254"),10000);
-
- //3、通过socket服务,将已有的数据包发送出去。通过send方法
- ds.send(dp);
- //4、关闭资源
- // ds.close();
-
- sop("over");
- }
复制代码
这是接收端
- public static void main(String[] args)throws Exception{
- //1、创建UDP,socket 建立端点
- DatagramSocket ds =new DatagramSocket(10000) ;
- //2、定义数据包,用于存储数据
-
- byte[] buf = new byte[1024];//这个相当于数据包的钳子,夹取数据
-
- DatagramPacket dp =new DatagramPacket(buf, buf.length);
- //3、通过服务 receive方法 将收到的数据存入数据包中
- ds.receive(dp);
-
- //4、通过数据包的方法获取其中的数据(即拆包)
- //数据包中 有IP地址,有数据,有端口,有很多信息,现在要将他拆分
- String ip = dp.getAddress().getHostAddress() ;
- InetAddress ip2 = dp.getAddress() ;
-
-
- String data = new String(dp.getData(),0,dp.getLength()) ;
- int port = dp.getPort();
- sop(ip+" :: "+data+" :: "+port);
-
- ds.close();
-
- }
复制代码
|
|