Java DatagramSocket class

Introduction

The following example implements a very simple networked communications client and server.

// Demonstrate Datagrams. 
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Main {
   public static int serverPort = 998;
   public static int clientPort = 999;
   public static int buffer_size = 1024;
   public static DatagramSocket ds;
   public static byte buffer[] = new byte[buffer_size];

   public static void TheServer() throws Exception {
      int pos = 0;
      while (true) {
         int c = System.in.read();
         switch (c) {
         case -1:
            System.out.println("Server Quits.");
            ds.close();/* www.  j a va 2s .c  om*/
            return;
         case '\r':
            break;
         case '\n':
            ds.send(new DatagramPacket(buffer, pos, InetAddress.getLocalHost(), clientPort));
            pos = 0;
            break;
         default:
            buffer[pos++] = (byte) c;
         }
      }
   }

   public static void TheClient() throws Exception {
      while (true) {
         DatagramPacket p = new DatagramPacket(buffer, buffer.length);
         ds.receive(p);
         System.out.println(new String(p.getData(), 0, p.getLength()));
      }
   }

   public static void main(String args[]) throws Exception {
      if (args.length == 1) {
         ds = new DatagramSocket(serverPort);
         TheServer();
      } else {
         ds = new DatagramSocket(clientPort);
         TheClient();
      }
   }
}



PreviousNext

Related