Probleme Avec Les Sockets

Résolu
AgoRa_ScripT Messages postés 136 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 20 octobre 2007 - 23 janv. 2005 à 19:19
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 - 24 janv. 2005 à 11:58
Bonjours :) J'essaye de faire une source avec les sockets, c'est pour mon bot. Quand je tape !google lol par exemple, je veux que mon bot inscrive les adresses correspondent a la recherche google.

Mais pour tester si sa marche, j'ai juste fais le debut de la source
qui consiste a juste avoir le code HTML de la page google en echo. Je
ferais le reste apres... Mais ça ne marche, je ne comprend pas du tout
ce qui cloche, j'ai une source identique pour les prenom qui utilize le
même procédé, et tout marche correctement...







ON *:TEXT:!google*:#:{

set %goochan $chan

set %google $2

set %top 1

sockopen google www.google.fr 80

}

on *:sockopen:google:{

sockwrite -n google GET /search?q= $+ %google $+
&hl=fr&lr=&ie=UTF-8&oe=UTF-8&start= $+ %top $+
&sa=N

inc %top

}

on *:sockread:google:{

sockread %sockgg

echo %sockgg

}


Voila, quand je tape /socklist, on me dit qu'aucun socket n'est connecté, et quand je tape manuellement sockwrite -n google GET /search?q= $+ %google $+ &hl=fr&lr=&ie=UTF-8&oe=UTF-8&start= $+ %ggh $+ &sa=N
on me dit que le socket google n'est pas connecté nonn plus. Je ne
comprend pas trop, j'espere que quelqu'un peut m'aider Merci d'avance

4 réponses

cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 6
23 janv. 2005 à 20:00
voila en un peu plus joli:



alias gg {

set %google $1

set %top 1

sockclose google

sockopen google www.google.fr 80

}

on *:sockopen:google:{

if !$sockerr {

echo -a sockopen ok

sockwrite -n $sockname GET /search?q= $+ %google $+
&hl=fr&lr=&ie=UTF-8&oe=UTF-8&start= $+ %top $+
&sa=N HTTP/1.0

sockwrite -n $sockname Host: www.google.fr $+ $str($crlf,2)

inc %top

}

}

on *:sockread:google:{

sockread %sockgg

echo > %sockgg

}



le truc qui faisait merder était le fait que tu fasses pas le sockwrite
avec deux retours de chariots, qui permet de terminer une requête je
crois (je sais pas le vocab exact)



PaDa
3
AgoRa_ScripT Messages postés 136 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 20 octobre 2007
23 janv. 2005 à 21:40
Merci PaDa :)) Ca marche bien :) Bonne Soirée

Courage Fuyons !
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
24 janv. 2005 à 07:13
Bonjour,

Juste une petite info concernant l'utilisation du protocole HTTP :
Si vous utilisez le protocole HTTP 1.0, il n'est pas obligatoire de spécifier l'header host, ceci est juste valable pour l'HTTP 1.1 (qui n'est pas utilisé ici)
Donc on peut remplacer la ligne :
sockwrite -n $sockname Host: www.google.fr $+ $str($crlf,2)
par :
sockwrite -n $sockname $str($crlf,2)

Le code de PaDa est fonctionnel, mais il est intéréssant de savoir comment fonctionne se que l'on utilise :-)

Si vous travaillez avec les sockets, pensez à faire un tour du côté des RFC (en l'occurrence la 1945 pour l'HTTP)

Cordialement, Sorn_Drixer
-
Mon site : Sorn-Creation
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 6
24 janv. 2005 à 11:58
Toujours bon à savoir, je mets le host par habitude :p

Merci Sorn ^^

PaDa
0