Je ne suis pas du tout un programmeur Java, j'essaie de l'éviter à tout prix, mais il faut que je l'utilise pour un cours (en Le professeur exige que nous utilisions Socket(), BufferedReader(), PrintWriter() et diverses autres choses, y compris la méthode readLine() de BufferedReader()Java, sockets, BufferedReader, et readline hang ... :(
Fondamentalement, c'est le problème que je suis ayant. la documentation indique clairement que readLine doit retourner une valeur nulle à la fin du flux d'entrée, mais ce n'est pas ce qui se passe.
Socket link = new Socket(this.address, 80);
BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream()));
PrintWriter out = new PrintWriter( new PrintWriter( link.getOutputStream(), true));
out.print("GET blah blah blah"); // http request by hand
out.flush(); // send the get please
while((s=in.readLine()) != null) {
// prints the html correctly, hooray!!
System.out.println(s);
}
au lieu de terminer à la fin de l'HTML, je reçois un l blanc ine, 0 et une autre ligne vide, puis le suivant in.readLine() se bloque pour toujours. Pourquoi? Où est ma null?
J'ai essayé out.close() pour voir si Yahoo! était en train de faire une session http persistant ou quelque chose (que je ne pense pas que ce serait sans l'en-tête nous sommes prêts à le faire).
Tous les exemples de sockets Java que je trouve sur le net semblent indiquer le tandis que la boucle est la forme correcte. Je ne connais pas assez Java pour déboguer cela.
Cela a du sens. Je devais vérifier les en-têtes. Je vais juste utiliser http1.0. – jettero
Oui, pour un exercice scolaire qui est la chose la plus sensée à faire. – Bombe