Socket [Résolu]

cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 21:17 - Dernière réponse : cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention
- 26 mars 2006 à 14:53
bonjour,
j'aurai voulus savoir comment connecter un socket dans une fenetre (un clone) et pouvoir lui faire faire des actions ( msg, etc ... )
j'ai lus des tutoriaux dessus mais j'ai trouver que des socket permettant de rendre le contenu d'un site mais pas de connecter un clone
si vous pouviez m'éclairer un peu :)
merci
KiNdEr_MaXi
Afficher la suite 

Votre réponse

29 réponses

Meilleure réponse
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 18 nov. 2004 à 21:34
3
Merci
je suis allé un peu vite ; voila un rajout qui te permet de préciser ton nick fullname etc :

Alias Clone { sockclose clone | sockopen clone chat4.x-echo.com 6665 }
on *:sockopen:clone:{
if !$window(@clone) { window -ae @clone }
if (!$sockerr) { 
echo @clone SOCKET OUVERT 
   sockwrite -n $sockname nick PSEUDO
   sockwrite -n $sockname user "" "" "localhost" :I'm a geek
}
else {
 echo @clone ECHEC : $sockerr 
}
}

on *:sockread:clone:{
sockread %z
echo @clone <- %z
}

on *:CLOSE:@clone:{ sockclose clone }
on *:INPUT:@clone:{
;ex pour les msg : !msg #salonout'es blabla
if ($1 == !msg) { sockwrite -n clone PRIVMSG $$2 : $+ $3- }
if ($1 == !join) { sockwrite -n clone JOIN $$2 }
;...
}


/me va toujours trop vite :'(

PaDa

Merci cs_PaDa 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_PaDa
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 18 nov. 2004 à 21:30
0
Merci
le plus simple qu'on puisse faire, exemple sur voiladoo :

Alias Clone { sockclose clone | sockopen clone chat4.x-echo.com 6665 }
on *:sockopen:clone:{
  if !$window(@clone) { window -ae @clone } 
  if (!$sockerr) { echo @clone SOCKET OUVERT }
else { echo @clone ECHEC : $sockerr }
}

on *:sockread:clone:{
  sockread %z
  echo @clone <- %z
}

on *:CLOSE:@clone:{ sockclose clone  }
on *:INPUT:@clone:{
;ex pour les msg : !msg #salonout'es blabla
  if ($1 == !msg) { sockwrite -n clone PRIVMSG $$2 : $+ $3- }
if ($1 == !join) { sockwrite -n clone JOIN $$2 }
;...
}

PaDa
Commenter la réponse de cs_PaDa
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 21:32
0
Merci
PARFAIS !!!!!
je suis sur voiladoo (comme tu dis lol), c'est exactement ce que je voulais merkiiiiiii =)

KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 21:35
0
Merci
loool spa bien grave tu es excusé :p
KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 21:45
0
Merci
juste un ptit truc =X
"sockwrite -n $sockname user "" "" "localhost" :I'm a geek"
je remplace par quoi les "" "" et local host je met $adresse ?

KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 18 nov. 2004 à 22:00
0
Merci
cherche un peu dans la RFC lol je sais plus ... ya ton anick ton mail etc :]
PaDa
Commenter la réponse de cs_PaDa
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 22:03
0
Merci
RFC ?
=X
KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 18 nov. 2004 à 22:05
0
Merci
Request For Comment je crois :p c'est les documents qui gèrent les principaux protocoles informatiques, l'irc c'est la 1459 je crois google is your best friend
:)
PaDa
Commenter la réponse de cs_PaDa
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 18 nov. 2004 à 22:06
0
Merci
lol oki
KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_Ungart 3 Messages postés mercredi 17 mars 2004Date d'inscription 26 novembre 2004 Dernière intervention - 25 nov. 2004 à 05:33
0
Merci
Bonjour,
J'ai tenter d'intégrer ce code dans mes remotes mirc, mais lorsque je fais /clone ca me renvoie ces messages:

SOCKET OUVERT
<- NOTICE AUTH :*** Looking up your hostname
<- NOTICE AUTH :*** Checking Ident
<- NOTICE AUTH :*** Found your hostname
<- NOTICE AUTH :*** No ident response
<- PING :51097610
<- :mesa.az.us.undernet.org 451 monpseudo monpseudo :Register first.


D'apres moi ca serait a cause de la ligne:
sockwrite -n $sockname user  <hostname> <servername> :<realname>


D'apres des exemples que j'ai vu le username, hostname et servername pouvaient etre les 3 la meme chose, mais c'est quelle information qui faut mettre la? :/

Merci :)

La clique du p'tit nain
Le forum de cette clique!
Commenter la réponse de cs_Ungart
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 25 nov. 2004 à 19:30
0
Merci
alors moi j'ai mis :
sockwrite -n $socknane nick kikikikiki
sockwrite -n $sockname user Azy Azy Azy :salut

ou kikikiki est son pseudo et azy azy azy :salut et bien je sais pas trop c'est un copain qui ma dis ca ca marche comme ca alors :x

KiNdEr_MaXi
Commenter la réponse de cs_KiNdErMaXi
cs_Ungart 3 Messages postés mercredi 17 mars 2004Date d'inscription 26 novembre 2004 Dernière intervention - 25 nov. 2004 à 20:07
0
Merci
Est-ce que mon erreur pourrait etre du au server sur lequel je suis? (Undernet) ou bien la version de mIrc que j'utilise?

La clique du p'tit nain
Le forum de cette clique!
Commenter la réponse de cs_Ungart
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 25 nov. 2004 à 20:18
0
Merci
comme le dit explicitement ton erreur, le pseudo que tu cherches a utiliser est réservé, ou alors tu dois réserver ton pseudo pour effectuer telle ou telle action. donc oui ca vient d'Undernet :]
cependant ca me le fait sur un de mes bots parfois sans raison, sur unet aussi, ca l'empêche pas de se connecter ni de rester par la suite... aucun pb donc :)
PaDa
Commenter la réponse de cs_PaDa
cs_Ungart 3 Messages postés mercredi 17 mars 2004Date d'inscription 26 novembre 2004 Dernière intervention - 26 nov. 2004 à 03:05
0
Merci
Oki, merci
Je sais pas pourquoi, mais a soir ca marche mieux qu'hier :)
Je sais pas pourquoia soir ca amrche, mais bon, tant que ca marche je vais rien changer :P

La clique du p'tit nain
Le forum de cette clique!
Commenter la réponse de cs_Ungart
thomasworms 12 Messages postés vendredi 1 avril 2005Date d'inscription 20 juin 2006 Dernière intervention - 1 mars 2006 à 16:30
0
Merci
Euh , le code :

Alias Clone { sockclose clone | sockopen clone chat4.x-echo.com 6665 }
on *:sockopen:clone:{
if !$window(@clone) { window -ae @clone }
if (!$sockerr) {
echo @clone SOCKET OUVERT
sockwrite -n $sockname nick PSEUDO
sockwrite -n $sockname user "" "" "localhost" :I'm a geek
}
else {
echo @clone ECHEC : $sockerr
}
}

on *:sockread:clone:{
sockread %z
echo @clone <- %z
}

on *:CLOSE:@clone:{ sockclose clone }
on *:INPUT:@clone:{
;ex pour les msg : !msg #salonout'es blabla
if ($1 == !msg) { sockwrite -n clone PRIVMSG $$2 : $+ $3- }
if ($1 == !join) { sockwrite -n clone JOIN $$2 }
;...
}

Est completement Faux , car le bot va partir en Ping Timeout toutes les 30 sec
car il faut placer :

on *:sockread:Clone*:{
sockread %Clone
if ($gettok(%a,1,32) == PING) sockwrite -n av* PONG $remove($gettok(%a,2,32),:)
unset %Clone
}


Dsl , PADA de te contredir ;) mais ta tort
Commenter la réponse de thomasworms
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 1 mars 2006 à 17:54
0
Merci
Et toi également avec ton magnifique "sockwrite -n av*" et ta var "%a" qui n'est pas dans le sockread :)

J'avais pas mis le ping/pong parce que ca me paraissait pas forcément
utile, parfois (c'est mon cas...) on connecte une socket juste pour
chercher une info ponctuelle (un topic, un nombre d'users, etc..)
Cela dit ta remarque a le mérite de faire signaler qu'il faut gérer les ping/pong events ;)

Bonne zournée
Pada
Commenter la réponse de cs_PaDa
cs_KiNdErMaXi 1055 Messages postés samedi 10 juillet 2004Date d'inscription 30 novembre 2009 Dernière intervention - 1 mars 2006 à 19:09
0
Merci
Si y'en a que ca interresse :

alias socket {
set %socknick $$1
sockopen hi $$2-
.timer 1 3 sockwrite -n hi nick $$1
.timer 1 4 sockwrite -n hi user a a a :.
}
alias hi { sockwrite -n hi $$1- }
on *:sockread:hi:{
if (!$window(@socket)) { window -k @socket }
sockread %temp
tokenize 32 %temp
if ($1 == PING) { sockwrite -tn hi PONG $2 | halt }
if ($2 == privmsg) {
if (!$window(@socket $+ $3)) window -ke @socket $+ $3
if $4 == :ACTION { echo @socket $+ $3 $timestamp 6* $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) $remove($5-,$chr(1)) }
else { echo @socket $+ $3 $timestamp < $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) > $right($4-,-1) }
}
elseif $2 == mode { echo @socket $+ $3 $timestamp 6× Mode × $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) met le mode $4- }
elseif $2 == nick {
if %socknick == $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) { set %socknick $remove($3,$chr(58),!) }
echo @socket $timestamp 6× Nick × $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) change son pseudo en $remove($3,$chr(58))
}
elseif $2 == join {
if %socknick == $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) { window -ke @socket $+ $remove($3,$left($3,1)) }
else { echo @socket $+ $remove($3,$left($3,1)) $timestamp 6× Join × $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) Entre sur $3 }
}
elseif $2 == part {
if %socknick == $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) { window -c @socket $+ $3 }
else { echo @socket $+ $3 $timestamp 6× Part × $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) part de $3 $4- }
}
elseif $2 == quit { echo @socket $timestamp 6× Quit × $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) a quitté l'irc $3- }
elseif $2 == kick {
if $4 == %socknick { echo @socket $+ $3 $timestamp 6× Kick × Tu as été kick par $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) : $right($5-,-1) | hi join $3 }
else { echo @socket $+ $3 $timestamp 6× Kick × $4 a été kick par $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) : $right($5-,-1) }
}
elseif $2 == notice { echo @socket $timestamp 6× Notice × De $remove($1,$remove($mask($1,0),!,$chr(42)),$chr(58),!) : $right($4-,-1) } elseif $2 :closing && $3 link: { echo @socket $timestamp 6× Disconnected × Tu as quitté l'irc : $left($5-,-1) }
elseif $2 == 353 { echo @socket $1- }
elseif $2 == 321 { window @list }
elseif $2 == 322 { echo @list $4- }
elseif $2 == 366 { halt }
elseif $2 == 332 { echo @socket $+ $4 $timestamp Le topic de $4 est : $remove($5-,$left($5,1)) }
elseif $2 == 333 { echo @socket $+ $4 $timestamp Topic mis par $5 le $asctime($6) }
elseif $2 == 372 { echo @socket 6× Motd × $right($4-,-1) }
elseif $2 == 376 { echo @socket 6× Motd × Fin du /motd }
elseif $2 == 421 { echo @socket $timestamp 6× Erreur ×  $+ $4 $+  Commande inconnue }
elseif $2 == 433 { echo @socket $timestamp 6× Erreur × Pseudo actuellement utilisé }
elseif $2 == 451 { echo @socket $timestamp 6× Erreur × Pseudo reservé }
elseif $2 == 306 { echo @socket $timestamp 6× Away × Tu entre en away }
elseif $2 == 305 { echo @socket $timestamp 6× Away × Tu reviens d'away }
else echo @socket $1-
}


on *:input:@socket*:{
if ($left($$1-,1) != /) {
if $gettok($editbox($active),1,32) == !me { echo -at 6* %socknick $remove($1-,!me) | hi privmsg $remove($window($active),@socket) : $+ ACTION $remove($1-,!me) }
else {
echo -ta < %socknick > $$1-
hi privmsg $remove($window($active),@socket) $chr(58) $+ $$1-
}
}
}

Ya pas mal de modif a faire mais ca marche :))


[irc://irc.voila.fr/kinder Kinder_Maxi]
Commenter la réponse de cs_KiNdErMaXi
Zqokmi 13 Messages postés dimanche 26 mars 2006Date d'inscription 2 avril 2006 Dernière intervention - 26 mars 2006 à 12:43
0
Merci
Lut PaDa peut tu maider please ?
mon problam cest ca : SOCKET OUVERT
<- :chat4.x-echo.com 498 :Pseudo résèrvé , veuillez en choisir un autre.
<- ERROR :Closing Link: 0.0.0.0 (Ping timeout)


ZqoKa-Ohla
Commenter la réponse de Zqokmi
cs_PaDa 1804 Messages postés mardi 15 juillet 2003Date d'inscription 22 septembre 2009 Dernière intervention - 26 mars 2006 à 12:48
0
Merci
Comme l'indique le message d'erreur, tu ne peux pas te connecter parce que ce pseudo est réservé..

Donc s'il n'est pas a toi, change le pseudo de la socket et tout ira bien :)

[font=Tahoma]PaDa/font=Tahoma
Commenter la réponse de cs_PaDa
Zqokmi 13 Messages postés dimanche 26 mars 2006Date d'inscription 2 avril 2006 Dernière intervention - 26 mars 2006 à 13:01
0
Merci
Re :p heum voila mon new problem (apres avoir mis kelke new truk :

SOCKET OUVERT
<- NOTICE AUTH :*** Looking up your hostname
<- NOTICE AUTH :*** Found your hostname, cached
<- NOTICE AUTH :*** Checking Ident
<- NOTICE AUTH :*** No ident response
<- :wineasy1.se.quakenet.org 433 * PSEUDO :Nickname is already in use.

PaDa help me


ZqoKa-Ohla
Commenter la réponse de Zqokmi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.