Kylc - IRC - Indy



  • Hallo erstmal,
    Ich hoffe ich hab hier das richtige Forum erwischt, auch wenn es sich hauptsächlich um c/c++ Forum handelt aber irgendwie habe ich noch die große Hoffnung, daß sich jemand auffindet der mein Problem lösen kann 😃

    Bisher habe ich nur in Delphi programmiert und versuche mich nun etwas in Kylix. Leider treten da bei mir ein paar Problemchen auf, die ich leider momentan noch nicht in der Lage bin zu lösen. Vielleicht könnt ihr mir ja helfen.
    Ich versuche mich gerade an der Socket bzw. IRC Programmierung unter Kylix und verwende dabei die Indy 9.0 Komponenten momentan benutze ich die Kylix 30 Tage Trial Version in der die Indy Komponenten bereits integriert sind.
    Also Betriebssystem kommt bei mir Suse 8.2 zum Einsatz (Hatte es zwar schon unter 9.1 versucht aber da macht Kylix massive Probleme, aber das nur am Rande 😉 )

    Ich habe nun unter Kylix ein kleines Programm geschrieben (eher momentan zusammengeklickt), bestehend aus der INDY IRC-Client komponente, einem Memofeld und zwei Button

    Bei einem onClick auf den Button1 soll zum Server connected werden.
    Bei einem onConnect und einem onconnected wird in das memomeld kurz eine Nachricht geschrieben, daß das Ereignis ausgelöst wurde.
    Weiterhin gibt es noch eine Procedure die die Daten ins memo reinschreibt

    procedure TForm1.IdIRC1Notice(Sender: TObject; AUser: TIdIRCUser;
      AChannel: TIdIRCChannel; Content: String);
    begin
    memo1.lines.add(Content);
    end;
    

    Wenn ich das Programm nun unter Kylix ausführe funktioniert alles ohne Probleme.
    Im Memo erscheint folgendes

    onConnected 
    onConnect 
    ***Looking up your hostname
    ***Checking Ident
    ***Found your hstname
    ***no ident response
    Ping pong
    

    und danach kommen die normalen MOTD vom Server. Es scheint also alles zu klappen.
    Nur zur Vollständigkeit hier noch das Ergebnis vom Ethereal Sniffer

    NICK kasimaro
    
    NOTICE AUTH :*** Looking up your hostname
    USER otilien 192.168.0.134 192.168.0.134 :hulato
    
    NOTICE AUTH :*** Checking Ident
    NOTICE AUTH :*** Found your hostname
    NOTICE AUTH :*** No ident response
    PING :940466102
    PONG :940466102
    

    Sieht also auch alles ganz OK aus...

    Nun aber mein wirkliches Problem. Wenn ich nun das Programm compiliere und das "fertige" Programm unter der Shell ausführe tut sich nicht wirklich viel. Das Programm startet zwar und ich bekomme bei Buttonklick auch die zwei Ereignisse onconnect und onconnected. Das war es allerdings auch schon.
    Das Ergbenis im Memo sieht wiefolgt aus

    onConnected
    onConnect
    

    Mehr leider nicht
    Das Ergbenis vom Ethereal sagt folgendes:

    NICK kasimaro
    
    NOTICE AUTH :*** Looking up your hostname
    NOTICE AUTH :*** Checking Ident
    NOTICE AUTH :*** Found your hostname
    USER otilien 192.168.0.134 192.168.0.134 :hulato
    
    NOTICE AUTH :*** No ident response
    PING :436143141
    :port80c.se.quakenet.org 513 kasimaro :Your client may not be compatible with this server.
    :port80c.se.quakenet.org 513 kasimaro :Compatible clients are available at ftp://ftp.undernet.org/pub/irc/clients
    ERROR :Closing Link: kasimaro by port80c.se.quakenet.org (Ping Timeout)
    

    Also zum einen gibt die IRC Komponente keine on Notice aus da nun der NOTICE Text nicht ans Memo weitergegeben wird. Weiterhin scheint die Komponente nun vom Shell gestartet nicht auf den Ping zu reagieren. Allerdings scheint die Komponente in gewisser Weise noch ihren Dienst zu verrichten, schließlich sendet sie Ein NICK und ein USER mit all den notwendigen Daten. Das die Komponente danach abschmiert denke ich kann man auch ausschließen. Der 2. Button den ich vorhin erwähnt habe, führt ein JOIN Channel aus. Wenn ich den Knopf drücke versucht die Komponente auch einem Channel zu joinen (ersichtlich im Ethereal) nur der Server verweigert logischerweise noch das Join weil man sich erst registrieren muß.

    Wer kennt sich mit dem Problem aus oder wer weiß woran es liegen kann, daß zum Einen unter kylix alles wunderbar funktioniert und zum anderen in der compilierten Form aus dem Shell heraus eben nicht.
    Das Phänomen tritt sowohl als normaler User als auch als root auf.

    Danke schonmal für eure Hilfe


Anmelden zum Antworten