Ciao. Sono nuovo![]()
Ho un piccolo problema con il seguente esercizio:
Scrivere in C o Java un programma che:
1. apra una connessione verso l'IP 151.97.252.4, port 80
2. invii la stringa "GET /gp/prova/11.aux\n"
3. nello stream di byte ricevuti individui la prima parentesi quadra aperta
4. memorizzi tutti i successivi byte fino alla prima parentesi quadra chiusa, che il server invierà, in una variabile stringa denominata "s"
5. invii, sulla connessione già aperta, la stringa s (attenzione: dovrebbe terminare per "\n")
6. scriva i byte ricevuti in risposta sulla standard output
Le richieste 5 e 6 non vanno a buon fine e non capisco perchè...il server non mi manda nulla in rispostacodice:import java.net.*; import java.io.*; public class Client { public static void main(String[] args) throws IOException { Socket R=null; BufferedReader IN=null; BufferedWriter out=null; PrintWriter OUT=null; try //avvio -------------------------------------------------------------------- { R=new Socket("151.97.252.4", 80); System.out.println("Client is ON! --> "+ R); IN=new BufferedReader(new InputStreamReader(R.getInputStream())); //input out=new BufferedWriter(new OutputStreamWriter(R.getOutputStream())); OUT=new PrintWriter(out, true); } catch(Exception e) { e.printStackTrace(); System.exit(1); } //invio richiesta ----------------------------------------------------------------- String richiesta="GET /gp/prova/11.aux\n"; try { OUT.println(richiesta); System.out.println("Richiesta inviata ..."); } catch(Exception e) { e.printStackTrace(); System.exit(1); } //ricevo file ....carattere per carattere ------------------------------------------------------ String s=""; boolean registra=false; //inizia a memorizzare la frase tra le due [] in base a questa variabile try { int x=IN.read(); while(x!=-1) //si suppone che ci siano entrabe le parentesi e che "[" preceda "]" { char c=(char)x; if (x=='[') registra=true; if(registra) s=s+c; if(x==']') registra=false; x=IN.read(); } } catch(Exception e) { e.printStackTrace(); System.exit(1); } //invio risposta. Elimino le parentesi quadre --------------------------------------------------- String s1=s.substring(1, s.length()-2); try { OUT.println(s1+"\n"); OUT.flush(); } catch(Exception e) { e.printStackTrace(); System.exit(1); } //ricevo risultato ------------------------------------------------------------------------------- String s2=""; try { int x=IN.read(); while(x!=-1) { char c=(char)x; s2=s2+c; x=IN.read(); } System.out.println("Risultato --> "+s2); } catch(Exception e) { e.printStackTrace(); System.exit(1); } OUT.close(); IN.close(); R.close(); System.out.println("FINE"); } //fine main } //fine Client![]()
![]()
Aiutatemi per favore...non so cosa fare e l'esame è molto vicino![]()

Rispondi quotando