Vraag & Antwoord

Programmeren

Uitlezen http request in linux lukt niet! [java]

2 antwoorden
  • Hallo, ik heb een applicatie die direct van een socket een http request (GET) leest. De request heeft de onderstaande vorm, waarbij ik alleen geinteresseerd ben in de x variabele: http://mijnserver/give=x Als ik van de socket ga lezen op onderstaande wijze: [code:1:271b29e08c] final InputStream bis = socket.getInputStream(); final int avail = is.available(); System.out.println("available bytes "+avail); final byte[] bytes = new byte[avail]; for (int i = 0; i < avail; i++) bytes[i] = (byte) bis.read(); String str = new String(bytes); System.out.println("Get = "+str); [/code:1:271b29e08c] dan krijg ik wanneer ik de applicatie op Windows 2k draai, dan krijg ik het volledige HTML request te zien, waaruit ik vervolgens mijn GET variabele kan halen. Wanneer ik de applicatie op linux draai, dan lukt het niet, ik kan helemaal niets van de socket lezen!, de avail bytes variabele is 0!! Het zou toch helemaal niet uit mogen maken waarop ik mijn applicatie draai, de http request wordt toch gewoon altijd meeverzonden?? Iemand enig idee, of een beter idee om http requests van een socket te lezen? alvast bedankt.
  • Het is misschien wel een idee om een System.out.println() neer te zetten als een client een socket aanmaakt. Als je deze println namelijk ziet weet je dat er wel connectie wordt gemaakt. Wat ik vermoed is dat er geen connectie wordt gemaakt omdat je firewall aan staat of een andere service al op deze poort draait. (als een andere service op deze poort draait krijg je als het goed is een BOUND exception). Als je die println niet te zien krijgt is je linux te streng ingericht, plaats dit bericht dan bij het OS Linux forum, die weten wel hoe ze dit moeten oplossen. Als je java applicatie werkt onder windows, werkt het ook onder Linux, heb ik zelf met een eigen geschreven webserver van mij geprobeerd. Hans

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.