Socket + Dcc chat

Anatolei Messages postés 27 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 31 janvier 2009 - 9 déc. 2007 à 15:34
Anatolei Messages postés 27 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 31 janvier 2009 - 9 déc. 2007 à 20:04
Bonjour,

Je tombe sur un os.. Voilà, je connecte une socket sur un serveur IRC, lorsque je tente, avec celle-ci, une connection dcc chat avec un autre usager, la connection est impossible:

-Acknowledging chat request...
-Unable to connect
-DCC session closed

La commande que j'éffectue est la suivante:
"sockwrite -n <sockname> privmsg $+(:,$chr(1),DCC CHAT chat $longip($ip) 4998,$chr(1))"

Je n'ai ce problème qu'en tentant le dcc via ma sock (routeur et mirc bien configurés). J'aimerai si possible des conseils pour résoudre ce problème :/

Merci.

5 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
9 déc. 2007 à 16:15
Tu respectes bien le protocole puisque tu as bien les confirmations du style :
"Acknowledging chat request..."
Donc a mon avis c'est le port qui ne va pas, fait un /debug @win, fait un /dcc chat normal avec une personne et regarde le port que mirc lui va utiliser, si ça marche (tu dis que tu n'as ce pb que avec ton socket) utilise le port que mirc utilise.
0
Anatolei Messages postés 27 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 31 janvier 2009
9 déc. 2007 à 17:12
Idem, même résultat :]

J'dois passer à côté de quelque chose d'essentiel ^^
0
Anatolei Messages postés 27 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 31 janvier 2009
9 déc. 2007 à 17:28
En fait, pour être plus précis, j'avais dans l'idée de faire un bot en sock, avec partyline :/
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
9 déc. 2007 à 18:12
Bon, j'ai regardé un peu cmt ça se passe, j'ai fait quelque essai, en fait oui ya bien un gros point que on a oublié :

A DCC connection begins with one
client; we will call it Client A. Client A, which (in most cases) is
connected to an IRC server, sets up a listening socket. It then sends a
CTCP request to Client B, the recipient of the DCC connection. The CTCP
request contains the type of connection, any relevant info (such as a
filename and size), and Client A’s IP address and the port it is
listening on.If Client B received the CTCP
message, it then decides what to do about it; usually it can be
configured to accept it, ignore it, or ask the user. If the user
decides to accept the DCC request, Client B then attempts to establish
a TCP connection to the IP and port given by Client A in the original
CTCP message. If Client B establishes a connection, then the DCC
transaction may continue.
Note that there is no message sent
if Client B denies the request, therefore Client A must wait a certain
amount of time and then give up. This is called a timeout. The amount
of time varies, but need not be very long. Only in very extreme cases
of lag can a short timeout cause a DCC to fail. (For example, if it
takes longer than the timeout for the original CTCP to reach Client B,
though this sometimes happens with XDCC servers that send data too
fast.)

Donc toi si tu veux tout géré par socket :
-si c'est toi qui demande a faire un dcc chat, tu doit d'abord écouter le port que tu sépcifie, ensuite tu envoie le truc, l'autre s'il répond *oui* va simplement se connecter sur ton ip sur le port que tu as spécifié, donc toi a ce moment là tu recoi l'info, tu acceptes la connexion et c'est bon.
-si c'est l'autre qui demande, tu recoi l'ip et le port, donc suffit d'ouvrir une connexion socket dessus.

Dans tout les cas, je pense que c'est très facilement faisable, hésite pas a demandé de l'aide a nouveau si ta un soucis.

Note : l'erreur que tu as :
-Acknowledging chat request...
-Unable to connect
-DCC session closed

Viens simplement du fait que tu initie bien l'invitation au dcc chat, mais ensuite si tu te connecte pas ou n'écoute pas de connexion, il y a un soucis ;)
0

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

Posez votre question
Anatolei Messages postés 27 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 31 janvier 2009
9 déc. 2007 à 20:04
En effet, il fallait tout d'abord utiliser /socklisten pour ouvrir un port, et ensuite accepter la connection de l'autre personne dans le on socklisten. J'avais déjà regardé dans ce sens là mais sans trop comprendre. En tout cas merci de ton aide
0
Rejoignez-nous