UDP发送数据步骤和接受UDP数据步骤

public static void main(String[] args) throws IOException {
    //1.创建对象
    DatagramSocket ds = new DatagramSocket();
    //2.准备数据包DatagramPacket对象的参数
    //byte[] 数据  getBytes()String类的方法转换为byte[]
    byte[] bys = "XXX,你7点起床。".getBytes();
    //length 数据的长度
    int length = bys.length;
    //InetAddress 发送的主机地址 getByName()里面可以是主机名或者IP地址。
    InetAddress host1 = InetAddress.getByName("自己本机的IPV4地址");//例如:192.168.111.211
    // InetAddress host2 = InetAddress.getByName("自己的电脑名称");//列如:暴走的独角兽
    //port端口 0 - 65535之间建议取8080以上。
    int port = 8086;
    //send需要DatagramPacket对象我们创建
    //3.构造方法DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
    DatagramPacket dp = new DatagramPacket(bys,length,host1,port);
    //4.发送数据void send(DatagramPacket p)
    ds.send(dp);
    //5.释放资源
    ds.close();
}

注释:发送数据和接受数据不能在同一个main方法下,你也可以把这个封装为一个方法。

public static void main(String[] args) throws IOException {
    //1.创建DatagramSocket对象并指定端口号,与发送端端口号一致。
    DatagramSocket ds = new DatagramSocket(8086);

    //2.创建DatagramPacket(byte[] buf, int length)

    //byte[] buf
    byte[] bys = new byte[1024];
    //int length
    int length = bys.length;
    DatagramPacket dp = new DatagramPacket(bys,length);

    //3.接收
    ds.receive(dp);
    //4.将内容输出到控制台,为什么使用DatagramPacket?因为数据在它那里。
    //getData()获取数据
    byte[] data = dp.getData();
    //输出在控制台
    System.out.println(new String(data)); //这种输出有空格字符怎么办?
    System.out.println(new String(data,0,dp.getLength())); //这样就能解决,读取0到dp.getLength()的长度字符串。
    //5.释放
    ds.close();

}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值