UDPsend

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

 /**
  * udp发送端
  * 需求:通过udp传输方式,将一段文字数据发送出去。
  * 1.建立udpsocket服务
  * 2.提供数据,并将数据封装到数据包中,
  * 3.通过socket服务发送功能,将数据包发出去
  * 4.关闭资源
  * @author Administrator
  *
  */
 class UDPsend {
  
  public static void main(String[] args) throws Exception {
   DatagramSocket ds;
   //1.创建udp服务,通过datagramsocket对象
   ds=new DatagramSocket();
   //2.确定数据,并封装
   byte[] data="sdfsdfsd".getBytes();
   DatagramPacket dp=new DatagramPacket(data, data.length,InetAddress.getByName("127.0.0.1"),10000);
   //3.通过socket服务,将已有的数据包发送出去,通过send 方法
   ds.send(dp);
   //4.关闭资源
   ds.close();
  }
 }
 /**
  * 定义udp的接收端
  * 需求:定义一个应用程序,用于接收udp协议传输的数据并处理
  * 1.定义udpsocket服务,通常会监听一个端口,就是给这个接收网络引用程序定义数字标石,方便获取
  * 2.定义一个数据包,因为要存储接收到的字节数据,数据包对象中有更多功能可以提取字节数据中的不同数据信息。
  * 3.通过socket服务的receive方法将受到的数据存入已定义好的数据包中
  * 3.通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上
  * 5.关闭资源
  */
 class UdpRece{
  public static void main(String[] args) throws Exception {
   //1.创建udp socket,建立断点
   DatagramSocket ds=new DatagramSocket(10000);
   while (true) {
    //2.定义数据包,寸数据
    byte[] buf=new byte[1024]; 
    DatagramPacket dp=new DatagramPacket(buf, buf.length);
    //3.通过服务的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);
   }
//   ds.close();
  }
 
 }

你可能感兴趣的:(UDPsend)