import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class TestUDPServer { public static void main(String[] args) { byte[] buf = new byte[1024]; // UDP不需要客户端和服务端产生连接服务端用一个小包袱接收数据 DatagramPacket dp = new DatagramPacket(buf, buf.length); // 构造出用来接收数据的包袱 DatagramSocket ds = null; try { ds = new DatagramSocket(8888); // 构造出用来接收数据的包袱的地址,是UDP的8888 while (true) { ds.receive(dp); // 接收数据放入包袱中,阻塞式的方法 System.out.println(new String(buf, 0, dp.getLength())); } // ds.close();放在这里是无法访问的代码 } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ds.close(); } } import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; public class TestUDPClient { public static void main(String[] args) { byte[] buf = (new String("nihaoa")).getBytes(); //客户端也要用一个包袱发送数据 DatagramPacket dp = null; DatagramSocket ds = null; try { dp = new DatagramPacket(buf,buf.length, new InetSocketAddress("127.0.0.1", 8888)); //构造出客户端发送的包袱,并指定发往哪 ds = new DatagramSocket(9999); //构造客户端发送包袱的端口,在客户端的UDP9999端口,给服务端的UDP8888端口发送数据 ds.send(dp); ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
java UDPSocket 简单示例
最新推荐文章于 2024-10-09 16:38:24 发布