Sto scrivendo un proxy HTTP. O meglio, sto facendo degli esercizi propedeutici a scrivere un proxy HTTP. Adesso vorrei fare quando segue:
Ponendo che il proxy più semplice è quello che non fa nulla, ovvero ha un socket aperto co, browser, e uno col server web di destinazione, prende quello che arriva tal browser e lo mette su quello che va al web server, poi prende ciò che risponde il server web e lo spara nel socket verso il browser. Semplice? NO!
Questo è il pezzo di codice incriminato. Dove sbaglio?
codice:
InputStreamReader isr=new InputStreamReader(client.getInputStream());
BufferedReader is=new BufferedReader(isr);
PrintWriter os=new PrintWriter(new BufferedOutputStream(client.getOutputStream()),false);
//Apro un socket sulla porta 80 verso il server web e preparo gli stream di input ed output
Socket s = new Socket ("ilmax.ilbello.com", 80);
System.out.println("Connessione avvenuta.");
BufferedOutputStream buffOut=new BufferedOutputStream (s.getOutputStream ());
//DataOutputStream out=new DataOutputStream (buffOut);
PrintWriter out=new PrintWriter(buffOut);
DataInputStream in=new DataInputStream (s.getInputStream());
//Mando al webserver la richiesta del client
is=new BufferedReader(isr);
String output=is.readLine();
while(output!=null){
out.write(output+"\r\n");
output=is.readLine();
}
out.flush();
System.out.println("Mandata al webserver la richiesta del client");
//Rimando al client la risposta del server
String input=in.readLine();
while(input!=null){
os.write(input+"\r\n");
input=in.readLine();
}
os.flush();
Per semplicità ho messo nell'apertura dl socket verso il webserver direttamente l'indirizzo da raggiungere. Il browser è impostato per avere il proxy.
Quando mi connetto all'indirizzo rimane lì ad aspettare qualcosa che non arriva