UDPClient.java 1.39 KB
Newer Older
Gabriele Civitarese's avatar
Gabriele Civitarese committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import java.io.*; 
import java.net.*; 

class UDPClient {
	public static void main(String args[]) throws Exception {
		/* Inizializza l'input stream (da tastiera) */
		BufferedReader inFromUser =                             
			new BufferedReader(new InputStreamReader(System.in));

		/* Crea una datagram socket */
		DatagramSocket clientSocket = new DatagramSocket();
		
		/* Ottiene l'indirizzo IP dell'hostname specificato
		 * (contattando eventualmente il DNS) */
		InetAddress IPAddress = InetAddress.getByName("localhost");

Gabriele Civitarese's avatar
Gabriele Civitarese committed
17
		byte[] sendData;
Gabriele Civitarese's avatar
Gabriele Civitarese committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
		byte[] receiveData = new byte[1024];

		String sentence = inFromUser.readLine();
		sendData = sentence.getBytes();

		/* Prepara il pacchetto da spedire specificando
		 * contenuto, indirizzo e porta del server */
		DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, 
					                                   IPAddress, 9876); 

		/* Invia il pacchetto attraverso la socket */
		clientSocket.send(sendPacket); 

		/* Prepara la struttura dati usata per contenere il pacchetto in ricezione */
		DatagramPacket receivePacket = 
			new DatagramPacket(receiveData, receiveData.length); 

		/* Riceve il pacchetto dal server */
		clientSocket.receive(receivePacket); 

38
		String modifiedSentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
Gabriele Civitarese's avatar
Gabriele Civitarese committed
39

Gabriele Civitarese's avatar
Gabriele Civitarese committed
40
		System.out.println("FROM SERVER: " + modifiedSentence);
Gabriele Civitarese's avatar
Gabriele Civitarese committed
41 42 43 44
		clientSocket.close(); 
	} 
}