发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。 发送端 package lesson03;import java.net.DatagramPacket;import java.net.DatagramSocket;
          发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。
发送端
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();
  }
}
接收端
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 消息发送的资料请关注易盾网络其它相关文章!
