PDA

Visualizza la versione completa : [JAVA] Ho dei seri problemi con i socket


mxa
05-03-2006, 11:14
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! :dhò:

Questo è il pezzo di codice incriminato. Dove sbaglio?



InputStreamReader isr=new InputStreamReader(client.getInputStream());
BufferedReader is=new BufferedReader(isr);
PrintWriter os=new PrintWriter(new BufferedOutputStream(client.getOutputStream()),fal se);


//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 :cry:

mxa
05-03-2006, 17:12
uppete :cry:

albgen
06-03-2006, 03:29
ma scusa, li devi dare il comando GET del HTML altrimenti la connessione rimane semplicemnte in attesa, per questo non vedi niente.
almeno credo che sia questo alle 2.30 :D
hai provato con lo sniffer ?

Loading