Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem: IRC + TClientSocket (https://www.delphipraxis.net/17264-problem-irc-tclientsocket.html)

Struwl 2. Mär 2004 09:05


Problem: IRC + TClientSocket
 
Hi

Ich habe folgendes Problem:

Ich möchte mit einem TClientSocket zu einem IRC-Server verbinden.
Allerdings kommt nach dem Verbinden folgendes
Delphi-Quellcode:
[onRead] NOTICE AUTH :*** Looking up your hostname

[onRead] NOTICE AUTH :*** Found your hostname, cached
NOTICE AUTH :*** Checking Ident

[onRead] PING :285310488
:port80b.se.quakenet.org 451 Struwl Struwl :Register first.
[onRead] ist das Ereignis des TClientSocket

Client-Einstellungen:
Adress = leer
ClientType = ctNonBlocking
Host = de.quakenet.org
Name = Client
Port = 6667
Service = leer
Tag = 0


Der Code für das Verbinden steht bei mir in [onClientConnect]
Delphi-Quellcode:
const
  endl = #13#10;

..


Ein Button macht: Client.Open;

procedure TfMain.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 m_log.Lines.Add('[onConnect]');
 Client.Socket.SendText('PASS meinPW'+endl); //Hier kann man doch irgendein PW eingeben, oder ?
 Client.Socket.SendText('NICK Struwl'+endl);
 Client.Socket.SendText('USER Struwl HIER-STEHT-MEIN-IP de.quakenet.org keiner'+endl);
 //Client.Socket.SendText('JOIN #test-abcdef'+endl);
end;
Und in der RFC 1459 steht, dass man zum registrieren die Befehle PASS, NICK und USER braucht (in der Reihenfolge)

Was habe ich falsch gemacht ?
Könnte es an meinem Router liegen ? (mIRC Client funktioniert - nur DCC nicht )

Und bitte keine Posts mit: "Benutz doch IdIRC etc." - ich will TClientSocket benutzen :)

P.S. den Thread habe ich mir als Vorbild genommen, aber auch dieser Code funktioniert bei mir nicht:
http://www.delphipraxis.net/internal...&highlight=irc

tia, Struwl

//Edit:
Jetzt scheint es zu gehen .. ich hab nichts verändert, aber ich hatte jtzt meinen IRC-Client zu :D
Aber warum kann ich nicht nochmal zu einem IRC-Server verbinden, wenn IRC schon offen ist ?

Pseudemys Nelsoni 2. Mär 2004 09:26

Re: Problem: IRC + TClientSocket
 
hallo,

es is ganz klar warum das so ist.
du gibst ein passwort an für das du noch gar keinen nick hast, deswegen wird da auch ":port80b.se.quakenet.org 451 Struwl Struwl :Register first." stehen.
setz mal das NICK vor dem PASS

Struwl 2. Mär 2004 09:37

Re: Problem: IRC + TClientSocket
 
So ich glaub den Fehler hab ich jetzt auch gefunden
Ich wollte den Port 6667 2x benutzen *tüdeledü*

Warum finde ich eigentlich immer die Fehler, wenn ich in einem Forum um Rat farge ? :|

P.S.

It is strongly
recommended that all server connections have a password in order to
give some level of security to the actual connections. The
recommended order for a client to register is as follows:

Oikarinen & Reed [Page 13]
RFC 1459 Internet Relay Chat Protocol May 1993

1. Pass message
2. Nick message
3. User message

mfg, Struwl

Pseudemys Nelsoni 2. Mär 2004 09:42

Re: Problem: IRC + TClientSocket
 
jo, das server passwort, nicht das für deinen nick.
und quakenet verlangt kein server pw

GaP 29. Okt 2004 01:39

Re: Problem: IRC + TClientSocket
 
Sorry, dass ich diesen alten Thread jetzt wieder ausgrabe, aber ich habe an der selben "gehangen", bei ein paar Spielen mit der TClientSocket Kompo und einem IRC-Server.
Die "Register first" Nachricht kommt nicht etwa wegen dem gesendeten PASS, sondern vielmehr deswegen, weil der PING nicht beantwortet wurde.
Wenn man das erste Connect hinter sich hat, kommt vom Server ein Ping, der in etwa so aussieht: "PING :23856393". Diesen Ping muss man benantworten indem man "PONG :"SelbeZahlwieeben"" zurücksendet und schon ist man fürs erste "registered" und kann nach belieben Channels joinen. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz