Salve a tutti,
Io ho risolto un esercizio di un mio esame sulle socket in Java e vorrei sapere da voi gentilmente se e' giusto perche' e' da poco che mi sono addentrata nella programmazione Java.
Ho fatto diverse prove e sembrerebbe andare anche se Netbeans mi va un po' lentino nell'output, pero' vorrei sapere se sintatticamente andrebbe bene.
La traccia e' la seguente:
1. Legge da tastiera un hostname e un numero di posta;
2. Apre una connessione TCP verso il server avente quell'hostname e quel numero di porta;
3. Legge da tastiera 10 stringhe, una per riga, e le invia una per volta al server;
4. Riceve dal server una stringa e la stampa su video;
5. Chiude la connessione col server
Non e' richiesta l'implementazione del server.
Io ho risolto un esercizio di un mio esame sulle socket in Java e vorrei sapere da voi gentilmente se e' giusto perche' e' da poco che mi sono addentrata nella programmazione Java.
Ho fatto diverse prove e sembrerebbe andare anche se Netbeans mi va un po' lentino nell'output, pero' vorrei sapere se sintatticamente andrebbe bene.
La traccia e' la seguente:
1. Legge da tastiera un hostname e un numero di posta;
2. Apre una connessione TCP verso il server avente quell'hostname e quel numero di porta;
3. Legge da tastiera 10 stringhe, una per riga, e le invia una per volta al server;
4. Riceve dal server una stringa e la stampa su video;
5. Chiude la connessione col server
Non e' richiesta l'implementazione del server.
Java:
import java.net.*;
import java.io.*;
public class Client3 {
private static String hostname;
public static void main(String[] args) throws IOException {
Socket clientSocket=null;
BufferedReader in=null, input=null;
PrintWriter out=null;
try {
String str=input.readLine();
System.out.println("Inserisci la stringa da convertire:"+str);
int PORT=Integer.parseInt(str);
System.out.println("La porta è:"+PORT);
String hostname=input.readLine();
System.out.println("Inserisci hostname:"+hostname);
clientSocket= new Socket(hostname,PORT);
System.out.println("Client socket:"+ clientSocket);
InputStreamReader isr= new InputStreamReader (clientSocket.getInputStream());
in= new BufferedReader(isr);
OutputStreamWriter osw= new OutputStreamWriter (clientSocket.getOutputStream());
BufferedWriter bw= new BufferedWriter(osw);
out= new PrintWriter(bw, true);
input= new BufferedReader(new InputStreamReader(System.in));
while (true) {
for (int i=0;i<10;i++){
String inviata= input.readLine();
System.out.println("Inserisci stringa da inviare al server:"+input.readLine());
out.println(inviata);
i++;
}
String ricevuta=in.readLine();
System.out.println("La stringa ricevuta è:"+ricevuta);
}
}
catch (UnknownHostException e) {
System.err.println("Don’t know about host "+ hostname);
System.exit(1);
}
catch (IOException e) {
System.err.println("Couldn’t get I/O for the connection to: " + hostname);
System.exit(1);
}
System.out.println("EchoClient: closing...");
out.close();
in.close();
clientSocket.close();
}
}