Udp消息发送接收示例

在Java中发送和接收UDP消息需要使用到如下两个对象

1、DatagramSocket,重要方法是send和receive

2、DatagramPacket,重要方法是getLength(这个不是必须的)

下面简单模拟一个服务端和一个客户端:首先运行服务端,然后每运行一次客户端,向服务端发送一个UDP消息字符串。程序代码如下:

服务端(接收端)

/** * */ package socket.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; /** * @author ZYWANG * */ public class UdpServer { public static void main(String[] args) { try { //定义UDP监听 DatagramSocket server = new DatagramSocket(10005); //定义缓冲区 byte[] buffer=new byte[1024]; //定义接收数据包 DatagramPacket packet=new DatagramPacket(buffer,buffer.length); while (true) { //接收数据 server.receive(packet); //判断是否收到数据,然后输出字符串 if(packet.getLength()>0){ String str = new String(buffer,0,packet.getLength()); System.out.println(str); } } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

客户但(发送端)

package socket.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; /** * @author ZYWANG * */ public class UdpClient { public static void main(String[] args) { try { //定义要发送的字符串并转为byte数组 byte[] buffer = "大家好".getBytes(); //定义UDP数据包,需要指定目标地址及端口号 DatagramPacket packet = new DatagramPacket(buffer,buffer.length,InetAddress.getLocalHost(),10005); //发送数据 new DatagramSocket().send(packet); } catch (UnknownHostException e) { e.printStackTrace(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

你可能感兴趣的:(Java)