For server:
   public void run()
   {
         socket = new DatagramSocket(port);      while(repeat)
      {
         if(socket != null)
         {
            byte buffer[] = new byte[MAX_UDP_BUFFER_SIZE];
            DatagramPacket packet;
            
            try
            {
               packet = new DatagramPacket(buffer, MAX_UDP_BUFFER_SIZE);
               socket.receive(packet);
               inetAddress = packet.getAddress();               buffer = packet.getData();
               ......
            }
            catch(IOException e)
            {
            }
         }
      }
For client
         inetAddress = InetAddress.getByName("255.255.255.255");
         localHostIP = inetAddress.getLocalHost().getHostAddress();
         localHostName = inetAddress.getLocalHost().getHostName();      DatagramSocket socket = null;         socket = new DatagramSocket();      if(socket != null)
      {                  ByteArrayOutputStream baos = new ByteArrayOutputStream();
                  DataOutputStream dos = new DataOutputStream(baos);
                  int strLoc = 21;
                  dos.writeInt(strLoc);
                  ...
                  dos.writeInt(someInt);
                  dos.writeInt(someInt);                  dos.writeInt(strLoc);
                  dos.writeBytes(someValue);
                  dos.writeBytes(localFriendlyName);
                  dos.close();                  byte buffer[] = baos.toByteArray();
                  DatagramPacket packet = 
                     new DatagramPacket(buffer, buffer.length, 
                                        inetAddres, port);                  socket.send(packet);         }         socket.close();
      }