import java.net.*;
import java.io.*;

class EnvoiMessage
{
	  // Un port avec une exception dans le FireWall Windows
	  static final int port=4501;


  /*
   * Il faut donner le nom de la machine destinataire sur la ligne de commande
   */
  public static void main(String argv[]) 
              //throws SocketException, IOException
    {
      if (argv.length!=1)
      {
    	  System.out.println
    	  ("donnez le nom de la machine destinataire");
    	  System.exit(0);
      }  
            
      //Cr&eacute;ation d'un datagramme pour la connexion &agrave; la machine destinataire
      InetAddress adresse=null;
      try
	{
    	  adresse = InetAddress.getByName(argv[0]);
    	  System.out.println("Pret a envoyer messages a " + argv[0] + "sur le port " + port);
	}
      catch(UnknownHostException exc)
	{
    	  System.out.println("destinataire inconnu");
    	  System.exit(0);
	}
      
      // Lecture de ce qui est tap&eacute; par l'utilisateur
      BufferedReader entree =new BufferedReader
                (new InputStreamReader(System.in));
      String ligne;
	try {
 		  ligne = entree.readLine();
	      System.out.println("Voici votre message &agrave; envoyer : " + ligne + "... envoy&eacute; !");
	      // Transformation de la String en byte (&agrave; envoyer)
	      int longueur=ligne.length();
	      byte[] message=new byte[longueur];
	      message=ligne.getBytes();
	      
	      // Envoi du paquet de byte (message) de taille longuer &agrave; la machine adresse sur le port port 
	      DatagramSocket socket;
	      try {
	    	  DatagramPacket envoi=
	      	             new DatagramPacket(message,longueur,adresse,port);
	      socket=new DatagramSocket();
	      socket.send(envoi);
	      socket.close();
	      }catch (SocketException ee){
	    	  System.out.println("Probleme de creation de DatagramPacket ou de DatagramSocket");
	  		  ee.printStackTrace();
	      }

	} catch (IOException e) {
		System.out.println("Probleme de lecture au clavier");
		e.printStackTrace();
	}


    }
}