Sockets> Problème...

Résolu
Lestat_2070 Messages postés 71 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 5 mars 2007 - 28 août 2005 à 18:06
Lestat_2070 Messages postés 71 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 5 mars 2007 - 29 août 2005 à 10:52
Bonjour à tous ^^

Pour mon addon, je me suis dit que j'allais faire une 'protection' au
cas où un fichier ini marquerai... j'ai donc lu quelques tutos sur les
sockets. J'ai essayé de faire quelques exemples de téléchargement
d'image pour m'entrainer . Hélàs, ca ne fonctionne pas toujours . Voici mes codes...



alias dl {

sockclose dl

sockopen dl www.microsoft.com 80

}

on *:sockopen:dl:{

;remove tmp.gif

sockwrite -n dl GET /h/all/i/ms_masthead_10x7a_ltr.jpg

}

on *:sockread:dl:{

sockread &a

bwrite logo.gif -1 -1 &a

}

on *:sockclose:dl:run logo.gif

>Celui-ci fonctionne très bien, alors que celui là (ci dessous), ne fonctionne pas



alias dl {

sockclose dl

sockopen dl www.google.fr 80

}

on *:sockopen:dl:{

;remove tmp.gif

sockwrite -n dl GET /intl/fr_fr/images/logo.gif

}

on *:sockread:dl:{

sockread &a

bwrite logo.gif -1 -1 &a

}

on *:sockclose:dl:run logo.gif





C'est précisément ici que je ne comprends pas: pourquoi avec
tel server, ca marche, alors qu'avec un autre, ca ne fonctionne pas . Quelqu'un à une idée ^^ ? Merci d'avance ;)

7 réponses

S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
28 août 2005 à 20:09
En fait, je viens de vérifier, mon code ne fonctionne pas avec cette
image, il faudrait pour cela l'améliorer, donc préfère le snippet

http://scriptsdb.org/comments.php?id=312



:)


----------------------------
Signature des parents :
3
COOLMAN002 Messages postés 969 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 1 juillet 2012 1
28 août 2005 à 18:27
euh, tu appelles les deux commandes a executer par le même nom... pas cool ! modifie ça :\
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
28 août 2005 à 18:43
tu rejoins un message que j'avais posté: en effet sur certains sites
(codes-sources en fait partie) , on n'arrive pas a telecharger les
images, çar il manque des octets (2 si mes souvenirs sont bons)

Donc je ne peux pas t'aider

(ah oui sinon la maniere dt tu telecharge tes images n'est pas la plus
orthodoxe; je te conseille de regarder une des souces de sorn drixer
qui permet de telecharger n'importe quel fichier, sauf certains imgs
;-)
0
Lestat_2070 Messages postés 71 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 5 mars 2007
28 août 2005 à 18:46
Euh, non, en fait j'avais mis chaque alias dans un irc différent pour tester ^^
Et finalement, même avec un nom différent (dans un meme irc), bah ca n'a pas l'air de fonctionner :s... une idée ? Le second alias fonctionne chez toi ?
Merci ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lestat_2070 Messages postés 71 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 5 mars 2007
28 août 2005 à 19:02
Erf, désolé Fjxokt j'avais pas vu ton post... bon ok, je vais voir de ce côté là, merci :) (rah, double post).

Bon, les sources de Sorn... Ah il utilise:



on *:SOCKOPEN:*nomdusocket*:{

sockwrite -n $sockname GET *fichier* HTTP/1.0

sockwrite -n $sockname $CRLF

}



Ca doit être ca qui change tout... enfin de mon côté l'erreur est "*
/run: unable to open 'logo.gif'", et hélàs, le fichier ne semble pas
être téléchargé (donc, ca semble rejoindre le coup de mon sockopen qui
foire).Donc, bon, je modifie ma souce en concéquence...ça donne:



alias dl {

sockclose dl

sockopen dl www.google.fr 80

}

on *:sockopen:dl:{

;remove tmp.gif

sockwrite -n $sockname GET /intl/fr_fr/images/logo.gif HTTP/1.0

sockwrite -n $sockname $CRLF

}

on *:sockread:dl:{

sockread &a

bwrite logo.gif -1 -1 &a

}

on *:sockclose:dl:run logo.gif



Ah, là c'est déjà beaucoup mieux, le fichier est downloadé, mais impossible à ouvrir =\... roh, c'est comme toi Fjxokt :(

Je comprends pas... bon, ok, je suis pas vraiment très fort... mais là,
je bloque =/. Euh, Fjxokt tu aurai le lien vers la discution que tu
avais posté, ca m'interesse ^^, merchi :)
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
28 août 2005 à 19:54
Va voir sur ce forum: http://ircfr.com/forum.v2.aspx?ID=515078



ça c'était le code que j'avais posté :



Use : sockopen img i3.microsoft.com 80



on *:sockopen:img:{

if ($sockerr) { echo -a erreur | halt }

sockwrite -n img GET /h/en-us/i/attachments_4_10.jpg HTTP/1.0

sockwrite -n img Host: i3.microsoft.com

sockwrite -n img $crlf

}

on *:sockread:img:{

sockread &temp

bcopy &temp2 1 &temp $iif($bfind(&temp,1,10 13) != 0, $calc($bfind(&temp,1,10 13)+3), 1) -1

bwrite babi.jpg -1 -1 &temp2

}



Tofu avait mis un lien vers un snippet de scriptsdb qui marchait parfaitement aussi:





http://scriptsdb.org/comments.php?id=312


---------------------------------
Signature des parents :
0
Lestat_2070 Messages postés 71 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 5 mars 2007
29 août 2005 à 10:52
B'jour ^^

Ah, merci S333... j'ai eut pris pas mal de temps à comprendre et à
interpréter l'addon de ScriptDB.org... mais finalement, je crois que
c'est bon . Yes, ca marche enfin .
Et j'ai même testé sur différents servers, ça à l'air de tenir le coup.
Ca marche même pour un compte free.fr, avec une image, et même pour le
fichier .ini que je voulais downloader s'il n'est pas présent, bref,
c'est génial , merci encore S333 ^^. Donc, le code, si ca peux servir à quelqu'un:





alias dl3 {

sockclose dl3

sockopen dl3 www.google.fr 80

}

on *:sockopen:dl3:{

if ($isfile(logo.gif)) { .remove logo.gif }

if (!$sockerr) {

sockwrite -n $sockname GET /intl/fr_fr/images/logo.gif HTTP/1.1

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

}

}



on *:sockread:dl3:{

sockread %var

if ($gettok(%var,1,32) == Content-Length:) { set %dl.size
$gettok(%var,2,32) | echo -ta $round($calc($gettok(%var,2,32) /
1024),2) $+ Ko }

if (%var == $null) {

if ($sock(dl4)) { sockclose dl4 }

sockrename dl3 dl4

}

}



on *:sockread:dl4:{

sockread &tmp

bwrite logo.gif -1 -1 &tmp

if ($calc(%dl.size - $file(logo.gif).size) == 0) { run logo.gif | sockclose dl4 }

}



Enfin, merci à tous pour votre aide !
0
Rejoignez-nous