Voltron
29-07-2009, 19:18
Ciao a tutti.:)
Come da titolo, ho realizzato un client che si connette ad un server (già esistente e correttamente funzionante); riesco ad inviare correttamente i dati (stringhe in formato xml) ma non riesco a catturare le risposte dal server (che vengono correttamente generate ed inviate).
Di seguito il codice del client :
public class Connection{
private Socket socket;
private PrintWriter out;
private BufferedReader in;
private CredentialsMessage credentials;
private AlignmentMessage alignmentMessage;
public Connection() {
credentials = new CredentialsMessage();
alignmentMessage = new AlignmentMessage();
}
public void connect(){
try {
String fromServer = "";
System.out.println("Apertura connessione...");
socket = new Socket("10.10.15.229", 36864);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
System.out.println("Connesso!!!!!!!!!!!!!!!");
out.println(credentials.getCredentials());
out.println(alignmentMessage.getAlignmentMessage());
System.out.println("inizio a leggere le risposte");
do{
fromServer = in.readLine();
System.out.println(fromServer);
}while(fromServer!=null);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: ");
System.exit(1);
} catch (IOException e) {
System.err.println(e.getMessage());
System.err.println("Couldn't get I/O for the connection to: ");
System.exit(1);
}
finally {
try {
socket.close();
} catch(IOException e) {e.printStackTrace();}
}
}
}
Nello specifico, ho verificato che il client si blocca non appena faccio la chiamata --> in.readLine() (questo si verifica anche mettendo la chiamata al di fuori di un ciclo e senza fare le --> out.println per l'invio delle credenzziali).
Dove sbaglio??:confused:
Ringrazio anticipatamente chiunque possa aiutarmi nel risolvere questo problema.
Come da titolo, ho realizzato un client che si connette ad un server (già esistente e correttamente funzionante); riesco ad inviare correttamente i dati (stringhe in formato xml) ma non riesco a catturare le risposte dal server (che vengono correttamente generate ed inviate).
Di seguito il codice del client :
public class Connection{
private Socket socket;
private PrintWriter out;
private BufferedReader in;
private CredentialsMessage credentials;
private AlignmentMessage alignmentMessage;
public Connection() {
credentials = new CredentialsMessage();
alignmentMessage = new AlignmentMessage();
}
public void connect(){
try {
String fromServer = "";
System.out.println("Apertura connessione...");
socket = new Socket("10.10.15.229", 36864);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
System.out.println("Connesso!!!!!!!!!!!!!!!");
out.println(credentials.getCredentials());
out.println(alignmentMessage.getAlignmentMessage());
System.out.println("inizio a leggere le risposte");
do{
fromServer = in.readLine();
System.out.println(fromServer);
}while(fromServer!=null);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: ");
System.exit(1);
} catch (IOException e) {
System.err.println(e.getMessage());
System.err.println("Couldn't get I/O for the connection to: ");
System.exit(1);
}
finally {
try {
socket.close();
} catch(IOException e) {e.printStackTrace();}
}
}
}
Nello specifico, ho verificato che il client si blocca non appena faccio la chiamata --> in.readLine() (questo si verifica anche mettendo la chiamata al di fuori di un ciclo e senza fare le --> out.println per l'invio delle credenzziali).
Dove sbaglio??:confused:
Ringrazio anticipatamente chiunque possa aiutarmi nel risolvere questo problema.