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?
Per semplicità ho messo nell'apertura dl socket verso il webserver direttamente l'indirizzo da raggiungere. Il browser è impostato per avere il proxy.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();
Quando mi connetto all'indirizzo rimane lì ad aspettare qualcosa che non arriva![]()

Rispondi quotando