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
codice:
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
Le richieste 5 e 6 non vanno a buon fine e non capisco perchè...il server non mi manda nulla in risposta
Aiutatemi per favore...non so cosa fare e l'esame è molto vicino