首页 > 编程语言 > Java 基于UDP协议实现消息发送
2020
11-22

Java 基于UDP协议实现消息发送

发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。

发送端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package lesson03;
 
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
 
/**
 * 发送端
 */
public class UdpClientDemo1 {
 
  public static void main(String[] args) throws Exception {
 
    //1、建立一个 Socket
    DatagramSocket socket = new DatagramSocket();
 
    /**
     * 2、建个包
     */
 
    //需要发送的消息
    String msg = "你好啊,服务器!";
 
    //发送地址
    InetAddress localhost = InetAddress.getByName("localhost"); //主机
    //发送端口
    int port = 9090;
 
    /**
     * 五个参数:
     * @param  buf  msg.getBytes():需要发送的数据包
     * @param  offset  0:数据偏移量
     * @param  length  msg.getBytes().length:数据长度
     * @param  address  localhost:目标地址
     * @param  port  port:目标端口
     */
    DatagramPacket packet = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, localhost, port);
 
    //3、发送包
    socket.send(packet);
 
    //4、关闭流
    socket.close();
  }
 
}

接收端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package lesson03;
 
import java.net.DatagramPacket;
import java.net.DatagramSocket;
 
/**
 * 接收端
 */
public class UdpServerDemo1 {
 
  public static void main(String[] args) throws Exception {
 
    //开放端口
    DatagramSocket socket = new DatagramSocket(9090);
 
    //接收数据包
    byte[] buffer = new byte[1024];
    DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);
 
    //接收
    socket.receive(packet); //阻塞接收
 
    //输出数据包地址
    System.out.println(packet.getAddress().getHostAddress());
    /**
     * 输出数据包数据
     * packet:Data 类型
     * 通过构造器转成 String 类型:new String();
     */
    System.out.println(new String(packet.getData(), 0, packet.getLength()));
 
    //关闭连接
    socket.close();
 
  }
 
}

以上就是Java 基于UDP协议实现消息发送的详细内容,更多关于Java 消息发送的资料请关注自学编程网其它相关文章!

编程技巧