Java UDP网络编程 - 最简单示例(一)

Java UDP网络编程 - 最简单示例(一)
Java UDP网络编程 - 最简单示例(一)

  1. import java.io.*;
  2. import java.net.*;
  3. class UDPServer{
  4.     public static void main(String[] args)throws IOException{
  5.         DatagramSocket  server = new DatagramSocket(4545);
  6.         byte[] recvBuf = new byte[100];
  7.         DatagramPacket recvPacket 
  8.             = new DatagramPacket(recvBuf , recvBuf.length);
  9.         server.receive(recvPacket);
  10.         String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength());
  11.         System.out.println("来自客户端的数据:" + recvStr);
  12.         int port = recvPacket.getPort();
  13.         InetAddress addr = recvPacket.getAddress();
  14.         String sendStr = "Hello ! I'm Server";
  15.         byte[] sendBuf;
  16.         sendBuf = sendStr.getBytes();
  17.         DatagramPacket sendPacket 
  18.             = new DatagramPacket(sendBuf , sendBuf.length , addr , port );
  19.         server.send(sendPacket);
  20.         server.close();
  21.     }
  22. }

  1. import java.io.*;
  2. import java.net.*;
  3. class UDPClient{
  4.     public static void main(String[] args)throws IOException{
  5.         DatagramSocket client = new DatagramSocket();
  6.         
  7.         String sendStr = "Hello! I'm Client";
  8.         byte[] sendBuf;
  9.         sendBuf = sendStr.getBytes();
  10.         InetAddress addr = InetAddress.getByName("127.0.0.1");
  11.         int port = 5050;
  12.         DatagramPacket sendPacket 
  13.             = new DatagramPacket(sendBuf ,sendBuf.length , addr , port);
  14.         client.send(sendPacket);
  15.         byte[] recvBuf = new byte[100];
  16.         DatagramPacket recvPacket
  17.             = new DatagramPacket(recvBuf , recvBuf.length);
  18.         client.receive(recvPacket);
  19.         String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength());
  20.         System.out.println("来自服务端的回复:" + recvStr);
  21.         client.close();
  22.     }
  23. }