Proxy-Programm Socket Streams

Chefkoch333

Erfahrenes Mitglied
Hi Forum,
ich versuche gerade einen Java-Proxy zu schreiben.
Dazu öffne ich einen ServerSocket und höre auf reinkommende Daten:

Code:
Socket client = serverSocket.accept();
...
InputStream is = client.getInputStream();
int iByte;
while(-1 < (iByte=is.read())) {
   baos.write(iByte);
}

Wenn ich jetzt z.B. den Firefox den Proxy einstelle, werden meine Anfragen gelesen, doch leider blockiert die is.read() Methode nachdem der Request vom Firefox gelesen wurde. Es wird anscheinend kein -1 am Ende geliefert.
Mache ich grundsätzlich etwas falsch? Woran könnte es liegen?
 
ich habe das genze jetzt so gelöst:

Code:
int iByte;
while(is.available()>0 && -1 < (iByte=is.read())) {
	baos.write(iByte);
}
 
Ähnliche Probleme hatte ich auch schon. Mein javaProxy läuft mit mehreren Threads, bekommt aber immer mal wieder einen Deadlock. Habe mich leider länger nicht mehr damit beschäfitgen können, daher habe ich auch noch keine Ahnung, wo der Fehler liegen könnte.

Sogar Youtube-Videos lässt er problemlos durch, aber bei manchen Seiten verschluckt er sich.

Werde das ganze demnächst (in ca. 1 Woche) nochmal anschauen und dir ein paar hinweise geben, evtl. auch den Sourcecode zur Verfügung stellen. Mal gucken ;)
 
Hi,
ja super, würde mich auf jedenfall interessieren, kann dir ja auch mal meine Sourcen schicken. Das Projekt ist allerdings noch lange nicht fertig, ich schick dir mal ne PM.
 

Neue Beiträge

Zurück