Salve a tutti. Vi espongo il mio problema:
Vorrei realizzare un client e un server che siano installati su macchine diverse.
Quando dico macchine diverse intendo che io ho il server e qualcuno di voi ha il client.
Le classi base che ho implementato sono le seguenti:
- SERVER
codice:
public class Server {
public static void main(String[] args)
{
try
{
// apertura del socket server
ServerSocket server = new ServerSocket(12345);
// dichiarazione del socket client e del buffer di ingresso
Socket client;
BufferedReader in;
System.out.println("Server ready (CTRL-C quits)\n");
// ciclo infinito
while(true)
{
// chiamata bloccante, in attesa di connessione da parte di un client
client = server.accept();
System.out.println("Client connected: "+client);
// lettura e stampa del messaggio in ingresso
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
System.out.println(">> "+client.getInetAddress()+": "+in.readLine()+"\n");
// chiusura del client socket
client.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
- CLIENT
codice:
public class Client {
public static void main(String[] args)
{
// verifica correttezza dei parametri
String messaggio = "Ciao mondo";
try
{
// preparazione dell'indirizzo del server
InetAddress address = InetAddress.getByName("localhost");
// creazione socket
Socket client = new Socket(address, 12345);
System.out.println("Client ready.\n");
// creazione buffer di scrittura
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true);
System.out.println("Buffer ready, sending message \""+messaggio+"\"...\n");
// scrittura del messaggio (passato come parametro) nel buffer in uscita
out.println(messaggio);
System.out.println("Message sent.\n");
// chiusura socket
client.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Allora in locale il tutto funziona. Ora per fare il passo avanti ovvero fare un programma distribuito, ovviamente il client deve conoscere a priori l'indirizzo ip del server.
Quindi basta modificare nel Client le seguenti righe?
codice:
InetAddress address = InetAddress.getByName("localhost");
Socket client = new Socket(address, 12345);
Eliminando la prima riga e scrivendo manualmente ad esempio :
codice:
Socket client = new Socket("111.22.3.4", 12345);
Illuminatemi su questo perchè avrei altre domande forse più interessanti 
e grazie in anticipo