Olen yrittänyt vääntää irc bottia masmilla. Saan yhdistettyä quakenettiin, mutta jostain syystä en saa ping viestiä, vaikka olen käsittääkseni lähettänyt user ja nick viestit oikein. Saan seuraavanlaisen vastauksen serveriltä:
NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Checking Ident NOTICE AUTH :*** Found your hostname NOTICE AUTH :*** No ident response ERROR :Closing Link: by sw2.de.quakenet.org <Registration Timeout>
Olen koittanut lähettää user ja nick viestit heti kun olen yhdistänyt ja silloin kun nuo neljä notice auth viestiä ovat tulleet, mutta kumpikaan tapa ei ole toiminut. Jostain syystä ei tule PING viestiä. Minkälaiset nuo user ja nick viestit pitäisivät olla, minä olen tehnyt näin:
sNickmsg db 'NICK nikki',0 sUsermsg db 'USER nikki 0 * :oikeenimi',0
Koodin pitäisi olla muuten oikein, mutta epäilen että toimimattomuus johtuu noista kahdesta viestistä.
Yritä yhdistää toisille servereille tai kokonaan toisiin verkkoihin ja katso tuleeko sama ongelma.
Telnetillä tuo onnistuu quakenettiin, mutta epäilenkin että noiden viestien perään kuuluu jotain muuta kuin tuo 0. Kysymys kuuluu että mitäköhän sinne perään sitten kuuluu?
HellRazor kirjoitti:
Telnetillä tuo onnistuu quakenettiin, mutta epäilenkin että noiden viestien perään kuuluu jotain muuta kuin tuo 0. Kysymys kuuluu että mitäköhän sinne perään sitten kuuluu?
Huom! En ole tutustunut IRC-protokollan määrittelyyn, mutta yleensä internetin "palveluissa" rivinvaihtona käytetään ASCII-arvoja 10 ja 13 eli C:llä \r\n.
A-P kirjoitti:
ASCII-arvoja 10 ja 13 eli C:llä \r\n.
Eikös \r\n ole kuitenkin 13 ja 10 eikä 10 ja 13?
sooda kirjoitti:
A-P kirjoitti:
ASCII-arvoja 10 ja 13 eli C:llä \r\n.
Eikös \r\n ole kuitenkin 13 ja 10 eikä 10 ja 13?
No niinhän se on. Pitipä mokata.
Tosiaan nollatavuja ei IRC-protokollassa heitellä vaan rivinvaihtoja. Koko protokolla on täysin tekstimuotoinen.
http://www.faqs.org/rfcs/rfc2812.html
Selittänee asiaa :)
Olen lukenut tuon irc client protokolla tekstin ties kuinka monta kertaa, mutta siinä ei käsitellä asiaa miten se tehdään assemblyllä. Eli ymmärsinkö oikein ettei sinne lähetetä tuota nollaa vaan 10 ja 13? Voinko lähettää ne suoraan kun olen yhdistänyt vai tarviiko odottaa noita notice auth viestejä?
Päivitys: Sain toimimaan! Se tosiaan tarvitsi nuo 10, 13 olen erittäinen kiitollinen kaikista neuvoista!
HellRazor kirjoitti:
Olen lukenut tuon irc client protokolla tekstin ties kuinka monta kertaa, mutta siinä ei käsitellä asiaa miten se tehdään assemblyllä.
Joo, ei kyl käsitellä C:täkään tai FORTRANiakaan tai edes Brainfuckia. Ei se RFC ota kieleen mitään kantaa...
Lähetä ainakin "PASS none" ennen nickia ja useria.
tuo NICK ja USER pitää lähettää tietyssä järjestyksessä en muista kumminpäin...
sUsermsg db 'USER nikki 0 * :oikeenimi',0
pistä tuon "*" tilalle 0 ainakin omassa ircbotissani tuo on 0
ja rivinvaihto viestin perään ainoastaan
Minulla on tuo * siinä kohtaa ja toimii aivan mainiosti, luultavasti siihen voi pistää mitä lystää. Eikä User ja Nick viesteillä pitäisi olla mitään merkitystä miten päin ne lähettää. Eikä PASS viesti ole ollenkaan pakollinen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.