欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-26 12:22:43
发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。发送端package lesson03;import java.net.datagrampacket...

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

发送端

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