Probleme Avec Les Sockets

Résolu
Signaler
Messages postés
136
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
20 octobre 2007
-
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
-
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

Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
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
Messages postés
136
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
20 octobre 2007

Merci PaDa :)) Ca marche bien :) Bonne Soirée

Courage Fuyons !
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
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
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
Toujours bon à savoir, je mets le host par habitude :p

Merci Sorn ^^

PaDa