Salut à tous,
Voilà je débutes en JAVA et comme premiere application je voulais faire un truc ou java est le spécialiste : les sockets :p ET là je me retrouve face à un mur.
En fait je souhaites émuler un client d'une application en analysant les packets du client original avec le serveur .
J'ai donc créé mon client, avec pour premier objectif d'intéroger google avec une requete HTTP, dont voici le code :
Ca ça marche très bien, pas de soucis, 2e etape je remplace le serveur de google par le serveur qui m'interesse, j'ai l'ip et le port donc pas de probleme de ce coté. Par contre en analysant le protocole de ce serveur je me rend compte que celui-ci en tout debut de communication m'envoi une premiere chaine de caractère ( avant meme toute requete du serveur ) et cette chaine de caractère est obligatoire à récupérer puisqu'elle est ensuite utilisée pour la reponse du client au serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 private void test(){ try { Socket s = new Socket("google.fr", 80); OutputStream theOutput = s.getOutputStream(); PrintWriter pw = new PrintWriter(theOutput, false); pw.print("GET /firefox&client=firefox-a&rls=com.google:fr:official HTTP/1.1\r\n"); pw.print("Accept: text/plain, text/html, text/*\r\n"); pw.print("\r\n"); pw.flush(); InputStream in = s.getInputStream(); InputStreamReader isr = new InputStreamReader(in); BufferedReader br = new BufferedReader(isr); String theLine; while ((theLine = br.readLine()) != null) { System.out.println(theLine); } } catch (IOException e) { System.out.println(e); } }
J'ai donc tenté de récupérer cette premiere chaine en enlevant les 4 lignes avec le pw et en ecoutant une reponse, mais en vain, ma classe socket arrive rien à récupérer. Pour autant, avec un logiciel d'ecoute du reseau le packet du serveur est bel et bien envoyée à ma socket cliente, c'est donc elle qui n'arrive pas à la récupérer.
Etant donné que ce mode de fonctionnement ( client en ecoute du premier message serveur ) n'est pas franchement habituel j'aurais voulut savoir si qqn avait dejà croisé ce fonctionnement, et si il est possible de le gérer avec la classe socket de java ( ou une autre classe JAVA, peu importe ^^ )
Voilà, merci par avance pour vos suggestions![]()
Partager