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

2022-07-27,,,,

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

发送

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 消息发送的资料请关注其它相关文章!

《Java 基于UDP协议实现消息发送.doc》

下载本文的Word格式文档,以方便收藏与打印。