UDP通信

目录

1.使用UDP通信实现:发送信息,接收信息

客户端实现步骤

服务端实现步骤


特点

无连接、不可靠、快速传输

1.使用UDP通信实现:发送信息,接收信息

客户端实现步骤


1.创建DatagramSocket对象(客户端对象)--> 扔韭菜的人
2.创建DatagramPacket对象封装需要发送的数据(数据包对象)--> 韭菜盘子
3.使用DatagramSocket对象的send方法,传入DatagramPacket对象--> 开始抛出韭菜
4.释放资源
public class Client {
    public static void main(String[] args) throws Exception {
        // 1. 创建客户端对象(发韭菜出来的人)
        DatagramSocket socket=new DatagramSocket();

        // 2. 创建数据包对象封装要发出去的数据(创建一个韭菜盒子)
        /*(byte buf[], int offset, int length,
            InetAddress address, int port)
            参数一:封装要发出去的数据
            参数二:发送出去的数据大小(字节个数)
            参数三:服务端的IP地址(找到服务端主机)
            参数四:服务端程序的端口
         */
        byte[]bytes="哈哈哈,我是快乐的ljm".getBytes();
        DatagramPacket packet=new DatagramPacket(bytes, bytes.length,
                InetAddress.getLocalHost(),6666);

        // 3. 开始正式发送这个数据包的数据出去了
        socket.send(packet);

        System.out.println("客户端数据发送完毕");
        socket.close();// 释放资源

    }
}

服务端实现步骤


1.创建DatagramSocket对象并指定端口(服务端对象)--> 接韭菜的人
2.创建DatagramPacket对象接收数据--> 韭菜盘子
3.使用DatagramSocket对象的receive方法,传入DatagramPacket对象--> 开始接受韭菜
4.释放资源
public class Server {
    public static void main(String[] args) throws Exception {
        System.out.println("服务端启动");
        // 1. 创建一个服务端对象(创建一个接韭菜的人) 注册端口
        DatagramSocket socket=new DatagramSocket(6666);

        // 2.创建一个数据包对象,用于接收数据的(创建一个韭菜盒子)
        byte[] buffer=new byte[1024*64]; // 64KB 协议设定,不可以超过64KB
        DatagramPacket packet=new DatagramPacket(buffer,buffer.length);

        // 3.正式利用数据包来接收客户端发来的数据
        socket.receive(packet);

        // 4.从字节数组中,将接收到的数组直接打印出来
        // 接收多少就倒出多少
       int len= packet.getLength();
       String rs=new String(buffer,0,len);
        System.out.println(rs);

        System.out.println(packet.getAddress().getHostAddress());
        System.out.println(packet.getPort());
        socket.close(); // 释放资源

    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值