发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。
发送端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 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(); } } |
接收端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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 消息发送的资料请关注自学编程网其它相关文章!
- 本文固定链接: https://zxbcw.cn/post/200281/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)