1 package com.socket.udp; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io.DataInputStream; 6 import java.io.DataOutputStream; 7 import java.io.IOException; 8 import java.net.DatagramPacket; 9 import java.net.DatagramSocket; 10 import java.net.InetSocketAddress; 11 import java.net.SocketException; 12 13 import org.junit.Test; 14 15 public class TestUDP { 16 @Test 17 public void testUDPServer(){ 18 try { 19 byte[] buf = new byte[1024]; 20 DatagramPacket dp = new DatagramPacket(buf,buf.length); 21 DatagramSocket ds = new DatagramSocket(5678); 22 while( true){ 23 ds.receive(dp); // 阻塞时方法 24 ByteArrayInputStream bais = new ByteArrayInputStream(buf); 25 DataInputStream dis = new DataInputStream(bais); 26 System.out.println(dis.readLong()); 27 } 28 } catch (SocketException e) { 29 e.printStackTrace(); 30 } catch (IOException e) { 31 e.printStackTrace(); 32 } 33 } 34 35 @Test 36 public void testUDPClient(){ 37 try { 38 long n = 99999L; 39 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 40 DataOutputStream dos = new DataOutputStream(baos); 41 dos.writeLong(n); 42 byte[] buf = baos.toByteArray(); 43 DatagramPacket dp = new DatagramPacket(buf,buf.length, new InetSocketAddress("127.0.0.1",5678)); 44 DatagramSocket ds = new DatagramSocket(9999); 45 ds.send(dp); 46 ds.close(); 47 } catch (SocketException e) { 48 e.printStackTrace(); 49 } catch (IOException e) { 50 e.printStackTrace(); 51 } 52 } 53 }