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

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

发送端

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协议实现消息发送 的全部内容, 来源链接: utcz.com/z/358526.html

回到顶部