-
Hallo Paulchen!
Du brauchst erstmal nur die TClientSocket Komponente auf deinem Formular. Dann trägst du in den Eigenschaften unter Host den IRC Server ein und unter Port halt den Standartport 6667. Active setzt du noch auf true, damit bei der Initilisierung deiner Komponente gleich eine Verbindung hergestellt wird. Im OnConnect Ereignis trägst du eine Prozedur ein, die dir per ShowMessage ausgibt, dass du verbunden bist. Die Nachricht sollte eigentlich immer ausgegeben werden, solange du den Server-Namen richtig eingegeben hast. Im OnRead Ereignis fängst du dann die Nachrichtigen, die vom Server kommmen, ab.
Um korrekt auf einen Server zu connecten benötigst du allerdings einen richtigen Ping-Reply, wofür du die Server-Nachrichtigen richtig parsen musst.
Um beim OnConnect deine Identifizierung an den Server zu schicken, kannst du per Socket.SendText('Konstanter String') deinen Text senden. Socket ist hier vom Typ TCustomWinSocket und wird dir schon als Parameter übergeben.
Code:
:Sender!uid@host COMMAND Target Argumente
So sieht die Nachricht vom Server im allgemeinen aus. Ob Sender etc. vorhanden ist, signalisiert der Doppelpunkt am Anfang, ist Sender vorhanden muss aber nicht unbedingt uid und host vorhanden sein, festzustellen am !. Der Befehl ist immer das nächste, darauf folgend das Target des Befehls, auf was dieser Befehl zutrifft (Channel, Nick). Danach kommen die Parameter des Befehls, welche z.T. mit einem Doppelpunkt beginnen können (NOTICE, PRIVMSG, QUIT,...). Mit Copy, Pos und Delete kann man die eingehende Zeile wunderbar zerlegen, versuchs mal.
Am Ende jeder Nachricht steht immer CRLF. Sollte jedoch eine Nachricht über 2 Packete gesendet werden, musst du den ersten Teil der Nachricht speichern und auf den nächsten CRLF warten, um dann zu parsen.
Das sollte an Informationen erstmal genügen, probier einfach ein bisschen rum, dann wird das schon
