Löytyskö jostain ohjeita että mitä tietoja clientin pitää lähettää että pääsee yhdistämään irc servulle jne. Ajattelin Javalla kokeilla jotain IRC-clientin tapasta tehdä.
Alkuun pääsemisen helpottamiseksi, serverille lähetetään seuraavat tiedot yhteyden rekisteröimiseksi.
"NICK nikki\r\n" "USER <username> <hostname> <servername> :oikea nimi\r\n"
Noista rivinvaihdoista (\r\n) javalla en ole varma, mutta tuo toimii ainakin koodatessa php:llä.
Tässä on lisää näppärää tietoa.
WPE Pro on ystäväsi jos kiinnostaa tutkia millaista liikennettä jokin valmis clientti lähettelee, voi olla kovinkin antoisaa luettavaa tylsien RFC:iden sijaan (okei, parempi nekin on kuitenkin lukasta läpi :D). MIRC:ssä saa jonkunlaisen debug-ikkunankin auki /debugilla johon se sylkee nettiliikennettä, jos sattuu kiinnostamaan.
edit. oletettaen että windowsia käytät
Komentojen parsiminen:
:KENELTÄ KOMENTO PARAMETRI PARAMETRI PARAMETRI :Viesti joka voi sisältää vaikka mitä.
Elikkä kun käsittelet sisääntulevan rivin, niin:
1) tarkista löytyykö riviltä " :", joka siis erottaa viestiosan komento-osasta.
2) erottele komento-osa viestiosasta
3) :KENELTÄ kertoo, mistä viesti on tullut. Sitä ei kuitenkaan välttämättä ole kaikilla sisääntulevilla riveillä. Sen olemassaolon tunnistaa siitä, onko rivin ensimmäinen merkki kaksoispiste vaiko ei.
4) Komentorivin osat voi erotella taulukoksi välilyönnillä.
Muista että tietoa vastaanottaessa on pakko käyttää bufferointia. Käytännössä siis, viimeisen rivinvaihdon jälkeinen tieto on pakko pistää talteen odottamaan lisätietoa.
Tietoa voi siis tulla tähän tapaan:
Paketti 1: :Merri!vip1@joku.palveluntarjoaja.fi NICK Merri :Merri!vip1@joku.palveluntarjo Paketti 2: aja.fi JOIN #kontu :Merri!vip1@joku.palveluntarjoaja.fi PRIVMSG #kontu :Hyvää huomenta!
IRCissä yhden tällaisen rivin maksimipituus on 512 merkkiä.
Ja tämä tuli ihan kokonaan sitten ulkomuistista, RFC:tä kannattaa noudattaa ja mIRCin ja muiden ohjelmien toimintaa kannattaa imitoida niin hyvin kuin mahdollista.
Ihan mielenkiinnon vuoksi halusin kysyä, että toimiiko IRC samalla tavalla kun vertaisverkko? Eli onko se jotenkin palveliton?
Triton kirjoitti:
Eli onko se jotenkin palveliton?
Ei.
Triton kirjoitti:
Ihan mielenkiinnon vuoksi halusin kysyä, että toimiiko IRC samalla tavalla kun vertaisverkko? Eli onko se jotenkin palveliton?
Täältä löytyy lisää tietoa asiasta.
Miten tuo PHP liittyy irc-clienttiin, javaan tai mihkään täällä käsiteltyyn?
Itellä myös irc-client aka botti:
http://quadcore.homeunix.net/trac_h3/
Saa ottaa mallia miten pitäisi/ei pitäisi tehdä juttuja.
Sen lisäksi voi kysyä lisää jos siltä tuntuu :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.