84 lines
2.0 KiB
Java
84 lines
2.0 KiB
Java
package socket_chat_udp;
|
|
|
|
import java.io.*;
|
|
import java.net.*;
|
|
import java.util.logging.Logger;
|
|
|
|
/**
|
|
* Created with xgiovio.macbookair.
|
|
* User: xgiovio
|
|
* Date: 02/12/14
|
|
* Time: 13:54
|
|
*/
|
|
public class Client {
|
|
|
|
private static final Logger l = Logger.getLogger(ClientInputManagement.class.getName());
|
|
|
|
public Client (String inome ,String iaddress, int iport, int ittl) {
|
|
|
|
address = iaddress;
|
|
port= iport;
|
|
nome = inome;
|
|
ttl=ittl;
|
|
|
|
}
|
|
|
|
public void launch (){
|
|
|
|
MulticastSocket connection = null;
|
|
DatagramPacket packet = null;
|
|
|
|
try {
|
|
connection = new MulticastSocket(port);
|
|
connection.setTimeToLive(ttl);
|
|
connection.joinGroup(InetAddress.getByName(address));
|
|
|
|
BufferedReader userinput = new BufferedReader(new InputStreamReader(System.in));
|
|
|
|
ClientInputManagement cim = new ClientInputManagement(connection);
|
|
cim.start();
|
|
|
|
String message = nome + " si e' connesso";
|
|
packet = new DatagramPacket(message.getBytes(),message.length(),InetAddress.getByName(address),port);
|
|
connection.send(packet);
|
|
|
|
String command = command(userinput);
|
|
for (; !("!quit".equals(command)) ;){
|
|
packet = new DatagramPacket(command.getBytes(),command.length(),InetAddress.getByName(address),port);
|
|
connection.send(packet);
|
|
command = command(userinput);
|
|
}
|
|
|
|
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
finally {
|
|
connection.close();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private String command (BufferedReader i){
|
|
try {
|
|
System.out.print(">> ");
|
|
return i.readLine();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "";
|
|
}
|
|
|
|
|
|
|
|
private final String address;
|
|
private final int port;
|
|
private final String nome;
|
|
private int ttl ;
|
|
|
|
|
|
}
|