UDP在java中主要使用DatagramSocket來實現通信,數據通常是經過DatagramPacket來封裝;java
發送方只需指定接受方的地址和端口,而後經過send()方法就能夠把封裝在DatagramPacket中數據發送過去!socket
而接收方只需一樣利用DatagramSocket和一個DatagramPacket來接收數據就能夠了,接受只需指定接受端口就能夠了,具體以下:spa
發送方:.net
package com.seven.exercise1; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UdpSend { public static void main(String[] args) throws Exception { //1.udp服務 DatagramSocket ds = new DatagramSocket(); //2.封裝數據到DatagramPacket byte[] data = "hello udp socket".getBytes(); InetAddress inetAddress = InetAddress.getByName("127.0.0.1");//地址. DatagramPacket datagramPacket = new DatagramPacket(data, data.length, inetAddress, 10000); //3.發送數據 ds.send(datagramPacket); //4.關閉 ds.close(); } }
接受方;code
package com.seven.exercise1; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UdpReceive { public static void main(String[] args) throws Exception{ //1.新建接收方 DatagramSocket datagramSocket = new DatagramSocket(10000); //2.綁定接收package byte[] b = new byte[1024]; DatagramPacket dp = new DatagramPacket(b,b.length); //3.接收數據 datagramSocket.receive(dp); //4.接收到數據的話那就打印出來 String data = new String(dp.getData(),0,dp.getLength()); System.out.println(dp.getAddress().getHostAddress() +"----->"+ data); //5.關閉; datagramSocket.close(); } }
由於UDP是面向無鏈接的,因此不管怎麼運行均可以,可是爲了可以接受到數據,咱們要把接受方先運行起來,再去運行發送方,這樣才能夠看出效果,否則的話數據包丟失也就看不出什麼效果了==。blog