// 
import java.io.*;
import java.net.*;

public class Client {
  protected static final int PORT=45678;
    
  public static void erreur() {
    System.err.println("Usage: java Client <hostname>");
    System.exit(1);
  }
  public static void main(String[] args) {
   Socket s=null;
   if (args.length!=1) erreur();
   try {
     s=new Socket(args[0],PORT);
     BufferedReader sin=new BufferedReader(new InputStreamReader(s.getInputStream()));
     BufferedReader console=new BufferedReader(new InputStreamReader(System.in));
     PrintStream sout=new PrintStream(s.getOutputStream());
     System.out.println("Connexion : "+ s.getInetAddress()+
			   " port : "+s.getPort());
     String ligne;
     while (true) {
       System.out.print("?");
       System.out.flush();
       ligne=console.readLine();
       sout.println(ligne);
       ligne=sin.readLine();
       if (ligne==null)
	    {System.out.println("Connexion stoppee par le serveur");
	     break;}
       System.out.println("!"+ ligne);
      }
    } // try
    catch (IOException e) {System.err.println(e);}
    finally
      {try {if (s!=null) s.close();}
       catch (IOException e2){}}
   } // main
}