• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JD557

[RESOLVIDO]IRC bot

7 mensagens neste tópico

Boas pessoal.

Estou a tentar fazer um IRC bot com C++ e SDL_net, mas por alguma razão ele não entra na sala.  :rant_01:

Segundo o meu debug, os inputs e outputs são estes:

output:NICK JDbot _JDbot_

input:NOTICE JDbot :*** If you are having problems connecting due to ping timeouts, please type /notice 3B9CC0F nosproof now.

PING :3B9CC0F

:world.PTnet.org NOTICE JDbot :*** If you need assistance with connecting to this server, world.PTnet.org, please refer to: http://www.PTnet.org/

output:PONG :3B9CC0F

output:USER JDbot hostname servername :JDbot

output:JOIN #JDtesting

No fim de cada mensagem enviada coloco sempre "\r\n".

No entanto o bot  nunca chega a entrar na sala.  :D

Estive a ver o código de outros bots e acho que é semelhante a este... O que será que estou a fazer de mal?  :)

Tenho uma socket aberta em irc.ptnet.org:6667 e outra em localhost:22, no entanto não chego a usar a do local host (ouvi dizer num sitio qualquer que era necesário abrir... mas como ainda estou às cabeçadas com isto nem sei o que tenho nem o que não tenho de fazer :wallbash:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Cum caraças... eu na altura fazia bots mas era mesmo nas tabs que o mIRC disponibilizava ahah

Desculpa-me o off-topic, mas nao fazia ideia que tambem se podia fazer coisa identica em C++.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Cum caraças... eu na altura fazia bots mas era mesmo nas tabs que o mIRC disponibilizava ahah

Desculpa-me o off-topic, mas nao fazia ideia que tambem se podia fazer coisa identica em C++.

Qualquer linguagem com sockets faz.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, estive a fazer mais uns testes e pelos vistos o que corre mal é mesmo o PONG...

Afinal o que é que eu tenho de enviar ao certo neste comando?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando recebes um comando de PING tens de enviar um PONG com o valor que recebeste. É basicamente um sistema keep-alive para o server saber se ainda te encontras ligado ou se perdeste a ligação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

input:NOTICE JDbot :*** If you are having problems connecting due to ping timeouts, please type /notice 3B9CC0F nosproof now.

PING :3B9CC0F

:world.PTnet.org NOTICE JDbot :*** If you need assistance with connecting to this server, world.PTnet.org, please refer to: http://www.PTnet.org/

output:PONG :3B9CC0F

Ora aí está, eu acho que estou a enviar o valor direito :P

Mas dali a uns minutos recebo uma mensagem de erro a dizer que o ping foi mal enviado ou uma coisa do género...

Bem, depois tenho de ver isso...

EDIT: Problema resolvido, estava a enviar um byte a mais em cada pacote, por isso tudo o que enviava a seguir ao primeiro pacote era inválido :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora