Android端进行UDP网络编程实现与后端消息发送

一般网络编程协议都是使用http,但是在一些特殊需求的功能则需要UDP网络编程,比如需要通过与后台进行长连接,实时发送接收消息等则需要UDP来实现更轻松。

DatagramSocket 和 DatagramPacket 两个类是 基于UDP 协议进行通信的包装类

实现两个客户端通过 UDP协议通信,使用DatagramSocket 和 DatagramPacket类

有如下几个步骤,分为客户端和服务端

1,客户端:

1),实例化DatagramSocket类(带上指定端口),创建客户端

2),准备数据,数据是以字节数组发送的

3),打包数据,使用 DatagramPacket 类 + 服务器地址+ 端口

4),发送数据

5),关闭连接

public static void sendMessage(String content) throws IOException {
    // 1,创建服务端+端口
    DatagramSocket client = new DatagramSocket(9901);
    // 2,准备数据
    String msg = content;
    byte[] data = msg.getBytes();
    // 3,打包(发送的地点及端口)
    DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("127.0.0.1", 1219));
    // 4,发送资源
    client.send(packet);
    // 5,关闭资源
    client.close();
}


2,服务端

1),实例化DatagramSocket类+指定端口

2),准备接收的字节数组,封装 DatagramPacket

3),接受数据

4),解析数据

5),关闭连接

public static void getMessage() throws IOException {
    // 1,创建服务端+端口
    DatagramSocket server = new DatagramSocket(9901);
    // 2,准备接收容器
    byte[] container = new byte[1024];
    // 3,封装成包 new DatagramPacket(byte[] b,int length)
    DatagramPacket packet = new DatagramPacket(container, container.length);
    // 4,接收数据,使用 DatagramSocket的实例的 receive( DatagramPacket ) 方法进行接收
    server.receive(packet);
    // 5,分析数据
    byte[] data = packet.getData();
    int length = packet.getLength();
    String msg = new String(data, 0, length);
    System.out.println(msg);
    server.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值