package fr.umlv.guess;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.util.Scanner;

public class KbdToServerUDPClient {
	private final DatagramSocket ds;
	private final DatagramPacket toServerPacket;
	private final static Charset TRANSFER_CHARSET = Charset.forName("iso-8859-15");
	
	public KbdToServerUDPClient(String serverName, int serverPort) throws SocketException, UnknownHostException {
		this.ds = new DatagramSocket();
		this.toServerPacket = 
			new DatagramPacket(new byte[]{}, 0, InetAddress.getByName(serverName), serverPort); 
	}
	
	public void launch() throws IOException {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNextLine()) {
			String line = sc.nextLine();
			toServerPacket.setData(line.getBytes(TRANSFER_CHARSET));
			ds.send(toServerPacket);
		}
		ds.close();
	}
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		if (args.length < 2) {
				System.err.println("Usage: java fr.umlv.guess.KbdToServerUDPClient <serverName> <listeningPort>");
				System.exit(0);
			}
			KbdToServerUDPClient client = new KbdToServerUDPClient(args[0],Integer.parseInt(args[1]));
			client.launch();
	}
}
