GFACTION
Messages postés199Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 7 avril 2005 28 juil. 2004 à 12:58
Je pense que tu aurais pu t'appliquer pour l'orthographe, et j'aime pas trop, c'est pas mal le désordre...
Il faudrait plutôt respecter un ordre chronologique comme ceci, ça aide à comprendre.
Imaginons que nous voulions envoyer du texte entre deux mIRC différents... (c'est un scénario comme un autre) m2 veut se connecter à m1 pour lui envoyer du texte.
Sur m1 (le premier mIRC) :
Il faut écouter un port pour que m2 puisse se connecter.
/socklisten m1_server 256
Par exemple. m1_server est le nom de la socket qui ne va rien faire d'autre que d'écouter un port.
Toujours coté m1 (donc serveur), pour accepter la future connexion de m2, il faut placer un évenement 'socklisten'.
on *:socklisten:m1_server: {
sockaccept m2
echo -a m2 vient de se connecter à m1
}
J'ai spécifié dans l'event : m1_server, qui est le nom de la socket qui va listen ce port, c'est donc à lui que nous allons faire référence.
En suite il faut donner un nom à la connexion de m2. Je l'ai appelé tout simplement m2.
Pour recevoir ce que nous envoit m2, et l'afficher, s'il le faut, il faut donc placer un évenement 'sockread'.
on *:sockread:m2: {
sockread %sr
tokenize 32 %sr
if ($1 == AFFICHE) {
echo -a ( $+ $sockname $+ ) : $2-
}
}
mIRC fait appel à cet event lorsque des données sont reçues de m2.
On stock dans %sr ce que m2 nous envoit.
Pour éviter de faire des $gettok à rallonge et donc de ralentir le serveur, je tokenize %sr, pour pouvoir accéder à %sr comme suit: $1 = $gettok(%sr,1,32) etc...
En fait, tokenize 32 %sr, split %sr en fonction du chr 32, donc "la phrase" est coupée à tous les chr 32. (le 32 c'est le caractère espace)
En suite, il faut élaborer un petit protocole, ici extrêmement simple, il ne réside qu'en une seule commande : AFFICHE.
Dès que m1 recoit : "AFFICHE salut ! :o", il va afficher dans sa fenêtre active : "(m2) : salut ! :o"
Ici, ça ne sert à rien d'utiliser $sockname, car il ne peut pas être autre chose que m2.
Maintenant, il faut gérer du coté m2.
Pour se connecter à m1, il faut ouvrir une socket.
/sockopen m1 127.0.0.1 256
Ouvrir la connexion à l'adresse de la machine où se situe m1, en l'occurence, la même machine (loopback 127), et sur le port qu'écoute m1, c'est à dire le 256.
En suite, il faut détecter quand la connexion est acceptée, autrement dit, quand m1 effectue son /sockaccept.
on *:sockopen:m1: {
echo -a Connexion acceptée par m1
sockwrite -tn m1 AFFICHE Voilà, je suis connecté :p
}
Donc, une fois la connexion ouverte, on affiche sur m1 un petit texte :)
/sockwrite permet d'envoyer des informations à une socket.
Dans ce cas basique, le serveur n'envoit rien, donc on n'a pas ressenti le besoin de mettre un on sockread pour m2, mais il est tout à fait possible de le faire, et cela fonctionne de la même manière.
Voilà, je viens de faire ce "tutorial", et j'estime qu'il est tout de même plus clair.
Bye
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 30 sept. 2003 à 20:46
Dommage, il manque la description des erreurs sur les sockets. Justement ce qu'il me fallait :(
DrAzZiK69
Messages postés117Date d'inscriptionlundi 17 mars 2003StatutMembreDernière intervention 8 décembre 2003 21 mars 2003 à 17:44
arff je trouve que les sockets c dur.. ki pouré maider? mail: DrAzZiK@Club-InterNet.fr Pacque jmré bien savoir mé a chak fois que j'essaye de me konec à un serveur ca ping time out link closed..
Bon AllEz @+ Me Amigos!
PaRaBoL
Messages postés18Date d'inscriptionlundi 6 mai 2002StatutMembreDernière intervention 6 septembre 2003 31 juil. 2002 à 21:19
ErAzEr le site c ircfr pas mircfr lol IRC c pas ke mIRC... mirc n'est kune minoriter... la majoriter des bon codeur sont sous nux ^^
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 18 juil. 2002 à 14:33
Cool ton tuto
cs_ErAzEr
Messages postés42Date d'inscriptionlundi 9 octobre 2000StatutMembreDernière intervention12 novembre 2003 13 juil. 2002 à 09:41
d'ou le nom du site :)
PaRaBoL
Messages postés18Date d'inscriptionlundi 6 mai 2002StatutMembreDernière intervention 6 septembre 2003 2 juil. 2002 à 15:21
Beinsure c'est du scripting mIRC et donc pour les utilisateur de WIndows ^^
28 juil. 2004 à 12:58
Il faudrait plutôt respecter un ordre chronologique comme ceci, ça aide à comprendre.
Imaginons que nous voulions envoyer du texte entre deux mIRC différents... (c'est un scénario comme un autre) m2 veut se connecter à m1 pour lui envoyer du texte.
Sur m1 (le premier mIRC) :
Il faut écouter un port pour que m2 puisse se connecter.
/socklisten m1_server 256
Par exemple. m1_server est le nom de la socket qui ne va rien faire d'autre que d'écouter un port.
Toujours coté m1 (donc serveur), pour accepter la future connexion de m2, il faut placer un évenement 'socklisten'.
on *:socklisten:m1_server: {
sockaccept m2
echo -a m2 vient de se connecter à m1
}
J'ai spécifié dans l'event : m1_server, qui est le nom de la socket qui va listen ce port, c'est donc à lui que nous allons faire référence.
En suite il faut donner un nom à la connexion de m2. Je l'ai appelé tout simplement m2.
Pour recevoir ce que nous envoit m2, et l'afficher, s'il le faut, il faut donc placer un évenement 'sockread'.
on *:sockread:m2: {
sockread %sr
tokenize 32 %sr
if ($1 == AFFICHE) {
echo -a ( $+ $sockname $+ ) : $2-
}
}
mIRC fait appel à cet event lorsque des données sont reçues de m2.
On stock dans %sr ce que m2 nous envoit.
Pour éviter de faire des $gettok à rallonge et donc de ralentir le serveur, je tokenize %sr, pour pouvoir accéder à %sr comme suit: $1 = $gettok(%sr,1,32) etc...
En fait, tokenize 32 %sr, split %sr en fonction du chr 32, donc "la phrase" est coupée à tous les chr 32. (le 32 c'est le caractère espace)
En suite, il faut élaborer un petit protocole, ici extrêmement simple, il ne réside qu'en une seule commande : AFFICHE.
Dès que m1 recoit : "AFFICHE salut ! :o", il va afficher dans sa fenêtre active : "(m2) : salut ! :o"
Ici, ça ne sert à rien d'utiliser $sockname, car il ne peut pas être autre chose que m2.
Maintenant, il faut gérer du coté m2.
Pour se connecter à m1, il faut ouvrir une socket.
/sockopen m1 127.0.0.1 256
Ouvrir la connexion à l'adresse de la machine où se situe m1, en l'occurence, la même machine (loopback 127), et sur le port qu'écoute m1, c'est à dire le 256.
En suite, il faut détecter quand la connexion est acceptée, autrement dit, quand m1 effectue son /sockaccept.
on *:sockopen:m1: {
echo -a Connexion acceptée par m1
sockwrite -tn m1 AFFICHE Voilà, je suis connecté :p
}
Donc, une fois la connexion ouverte, on affiche sur m1 un petit texte :)
/sockwrite permet d'envoyer des informations à une socket.
Dans ce cas basique, le serveur n'envoit rien, donc on n'a pas ressenti le besoin de mettre un on sockread pour m2, mais il est tout à fait possible de le faire, et cela fonctionne de la même manière.
Voilà, je viens de faire ce "tutorial", et j'estime qu'il est tout de même plus clair.
Bye
30 sept. 2003 à 20:46
21 mars 2003 à 17:44
Bon AllEz @+ Me Amigos!
31 juil. 2002 à 21:19
18 juil. 2002 à 14:33
13 juil. 2002 à 09:41
2 juil. 2002 à 15:21