当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-04-03
发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。 发送端 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 消息发送的资料请关注易盾网络其它相关文章!

网友评论