IRC er jo ikke andet end TCP kommunikation.
Dvs. du kan smide en TClientSocket på din form og sætte den til at connecte til f.eks. diemen.nl.eu.undernet.org på port 6667.
Når du så er connected skal du sende lidt info for at serveren lader dig komme på netværket. Disse kommandoer ser således ud:
ClientSocket1.Socket.SendText('USER Username blah blah :RealNick'+#10);
ClientSocket1.Socket.SendText('NICK MyNick'+#10);
Du skal så checke på om der bliver sendt en PING besked til dig, denne ser ofte således ud "PING :3425435444" her er det så vigtigt at du parser den besked og sender et PONG svar således at du sender de tal tilbage som står efter ":", dette kunne f.eks. se således ud:
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
temp, cmd: string;
begin
Temp:=socket.ReceiveText;
memo1.lines.add(Temp); //Tilføj linjen til en form for display
//bemærk at de næste 2 linjer er skrevet uden jeg har testet dem
//de kræver muligvis lige lidt tilretning for at virke helt
//efter hensigten.
cmd := copy(temp, 0, pos(temp, ':')-1);
temp := copy(temp, pos(temp, ':'),length(temp));
If comparetext(cmd,'ping')=0 then begin
Socket.SendText('PONG '+temp+#10);
end;
end;
Nu skulle du så gerne være connected til serveren og hvis du ellers har lavet et memofelt således at du kan se hvad serveren sender til dig, så skulle du nu gerne få en masse text fra serveren smidt i hovedet.
Derefter kan du så udvide dit program som du vil. Nogle basale kommandoer der er gode at kunne når man roder med IRC er:
JOIN #channel
PRIVMSG #Channel/Nick :Text goes here //Svarer til /msg #chan/nick text i mIRC, bemærk at du skal huske at skrive ":" foran al generel tekst, ellers vil serveren tolke det første ord som sætningen.
MODE #Channel +o NICK //siger sig selv
KICK #Channel NICK :kick reason //igen husk ":"
For mere information henviser jeg til RFC1459
http://www.faqs.org/rfcs/rfc1459.html//DJ