2008-11-27 10 views
5

Estoy haciendo un IRC Bot simple en C. Y finalmente obtuve el bot conectando y recibiendo información. También se supone que mi código está enviando, pero el servidor actúa como si no estuviera enviando nada. Cuando el robot se conecta, recibo esto:IRC Bot: Error - Tiempo de espera de registro

Recibido:: roc.esper.net AVISO AUTH : *** Mirando hacia arriba su nombre de host ...

Recibido:: AVISO roc.esper.net AUTH : *** encontrado su nombre de host

momento en el que mi código envía esto:

Sent: NICK Goo

Enviado: USUARIO Goo * *: Goo

Decidí usar wireshark que este es el registro que debe enviar después de la conexión inicial. Sin embargo, no estoy seguro de que los datos realmente se envíen o tal vez no es válido de alguna manera? Porque después de unos 30 segundos de nada también recibo esto:

Recibido: ERROR: Enlace de cierre: c-68-33-143-182.hsd1.md.comcast.net (Registro de tiempo de espera)

Y luego mi programa se cierra.

¿Alguien más sabe algo sobre los procesos de autenticación/registro de programatic en irc? ¿O alguien más tiene alguna idea útil?

Gracias

** EDIT ** Reparado. Necesitaba enviar terminadores de línea al final de cada línea. \ R n

Respuesta

1

\ Desde los tutoriales que miraba (como this one), parece que lo está haciendo bien, excepto que esta

USER Goo * * :Goo 

es

USER Goo 0 * :Goo 

en todos los tutoriales Yo vi. Además, no olvide el PING-PONG más adelante, pero esto no debería ser necesario para el registro (EDIT: parece que esto es incorrecto y se necesita PONG justo después de enviar NICK).

Supongo que sabes acerca de RFC 1459, que también te ayudará mucho con esto.

+0

Mmmm, intenté. Aún tengo el mismo error. =/Gracias aunque –

+0

¿Comprueba si hay PING? Parece que hay un mensaje de error si no PONG en el registro, también. – schnaader

2

Intente enviar el comando USER antes del comando NICK. ¿Con qué red de IRC estás tratando de conectarte?

" 
> telnet irc.freenode.net 6667 
NOTICE AUTH :*** Looking up your hostname... 
NOTICE AUTH :*** Checking ident 
NOTICE AUTH :*** No identd (auth) response 
NOTICE AUTH :*** Couldn't look up your hostname 
USER x x x x 
NICK hwjrh 
:kubrick.freenode.net 001 hwjrh :Welcome to the freenode IRC Network hwjrh 
:kubrick.freenode.net 002 hwjrh :Your host is kubrick.freenode.net[kubrick.freenode.net/6667], running version hyperion-1.0.2b 
" 

Trabaja para mí; Telnet de I a Freenode, Undernet y Dalnet todo el tiempo ...

+0

Sí, lo mismo aquí, incluso para roc.esper.net, pero después de enviar NICK obtiene un PING, tiene que responder. Después de eso, todo funciona bien – schnaader

+0

aún no funciona para mí. Todavía está haciendo lo que estaba haciendo antes. Y no estoy recibiendo un PING. Solo pasa el tiempo. –

+2

Quizás algo esté mal con sus mensajes. ¿Envía un CR/LF al final de esos también? Si es posible, pruebe con telnet también, para que pueda ver si incluso esto falla para usted. – schnaader

3

Telnet para roc.esper.net:

~$ telnet roc.esper.net 6667 
Trying 198.247.173.216... 
Connected to roc.esper.net. 
Escape character is '^]'. 
:roc.esper.net NOTICE AUTH :*** Looking up your hostname... 
:roc.esper.net NOTICE AUTH :*** Found your hostname 
NICK Goo 
USER Goo * * :Goo 
PING :268966433 
PONG :268966433 

NICK, USUARIO y Pong se envía por mí.Después de eso, el mensaje de bienvenida sigue:

:roc.esper.net 001 Goo :Welcome to the EsperNet Internet Relay Chat Network Goo 
:roc.esper.net 002 Goo :Your host is roc.esper.net[198.247.173.216/6667], running version esphyb-1.0.1 

Y así sucesivamente ...

Así, de nuevo, la verificación de ping-pong y si sus mensajes son enviados correctamente (especialmente CR/LF o '\ n' al final).

Por cierto, recibo "tiempo de espera de registro agotado" si no envío ninguno de los mensajes, incluso si falta PONG, pero una vez que contesté PING, ya no hay tiempo de espera (al menos no después de 30 segundos))

Cuestiones relacionadas