Prosty klient IRC z wykorzystaniem Indy 10 - brak połączenia

Prosty klient IRC z wykorzystaniem Indy 10 - brak połączenia
GR
  • Rejestracja:prawie 18 lat
  • Ostatnio:ponad 3 lata
0

Witam, próbuje napisac prostego klienta irc w delphi xe 5 używam Indy 10, juz od kilku dni walcze z tym szukajac na rónych forach i nic nie moge wywalczyc.
Wygląda jak gdyby się łączył z serverem irc ale nie może wejść na kanał.
poniżej podaje kod, może któryś z kolegów naprowadzi mnie na to co jest nie tak.

Kopiuj
procedure TForm1.Button1Click(Sender: TObject);
begin

  // IdIRC1.Host := 'efnet.xs4all.nl';
   //IdIRC1.Port := 6667;
   IdIRC1.Nickname := 'test';
   IdIRC1.Username:='test2';
     IdIRC1.AltNickname:='test____';

  try
     idIRC1.Connect;  // timeout 60 seconds
   except
     if not idIRC1.Connected then
       begin
         MessageDlg('Error connectiing to ' + idIRC1.Host, mtError, [mbOK], 0);
         Exit;
       end;
   end;
   MessageDlg('Connected to ' + idIRC1.Host, mtInformation, [mbOK], 0);
   //idIRC1.Join(edit3.text);
   button1.Enabled:=false;




end;

procedure TForm1.Button2Click(Sender: TObject);
begin
idirc1.Join('#test232');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 idIRC1.Say('#test232',' ooooo');
end;

procedure TForm1.IdIRC1Connected(Sender: TObject);
begin
   memo1.Lines.Add('connected');
end;
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Zadam pytanie. A czy IRC musi być koniecznie obsłużony przez Indy? Ponieważ jeżeli nie musi. To polecam komponent Vortex. W załaczniku masz potrzebne moduły. Ja sobie go obsłużyłem dynamicznie w jednym ze swoich projektów. I na pewno z wchodzeniem na kanał problemów żadnych nie ma.

A poza tym zdaje się, że jako jeden z nielicznych komponentów obsługuje prawidłowo Identd. Dzięki czemu nie masz przed nazwą usera znaku tyldy. A i wchodzenie przykładowo na QuakeNet, trwa o wiele szybciej. Jeżeli jednak upierasz się przy Indy, to pomóc może Ci tutaj raczej tylko @kAzek.


Pozdrawiam.
Johnny_Bit
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kielce
0

HAKGER - 50% Complete
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

@Johnny_Bi: nie rozumiem o co pytasz? To art opisujący podstawy. Ja jednak w załączniku zamieściłem same potrzebne pliki.


Pozdrawiam.
Johnny_Bit
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kielce
0

@olesio - poszedł mi post zanim dokończyłem pisać. Chodziło mi o to czy nie wartałoby wspomnieć o artykule na 4p o tym komponencie (i może przy okazji go rozwinąć)?


HAKGER - 50% Complete
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Ok. To zrób to. Jeśli masz ochotę i czas. Ja niestety nie mam. A komponent nie jest bardzo trudny w użyciu. Jego kod jest w miarę przejrzysty. Przynajmniej w wersji, którą zapodałem. Są też najważniejsze rzeczy jak choćby zdarzenia skomentowane.


Pozdrawiam.
Johnny_Bit
Zrobione! (wspomniałem), poprawiać artykułu nie będę ;) nawet nie mam systemu na którym delphi by mi dziłałało ;)
M6
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 6 lat
  • Postów:220
1

Zrobie sobie loga, wtedy bedziesz wiedzial wiecej

Kopiuj
procedure TForm1.IdIRC1Raw(ASender: TIdContext; AIn: boolean; const AMessage: string);
begin
  Memo1.Lines.Add(AMessage)
end;

Obstawiam problem z loginem/haslem.

Ja tak sprawdzam poprawne logowanie na evencie OnRaw (dla twitch.tv)

Kopiuj
if AMessage = 'NOTICE * :Login unsuccessful' then
begin
// 'Złe hasło albo login'
end
else if AMessage = 'NOTICE * :Error encountered while attempting login' then
begin
// 'Wystąpił nieznany błąd podczas logowania do czatu Twitch''a. Prawdpodobnie konto nie jest zweryfikowane.'
end
else if (Pos('connected to TMI', AMessage) > 0) or (Pos('host is testserver.local', AMessage) > 0) or (Pos(':HISTORYEND', AMessage) > 0)
then
begin
fUdanePolaczenie := True;
end

aaaa i sprawdz pm. Jakis nadgorliwy admin usunal moj topic -.-


edytowany 4x, ostatnio: flowCRANE
flowCRANE
Twój wątek został usunięty, bo zawierał treści niezgodne z regulaminem; Poza tym nawołujesz do łamania praw autorskich, a z tego ich właściciel na pewno nie będzie zadowolony; I kolejna rzecz- WSTAWIAJ KOD W ZNACZNIKI KOLORUJĄCE SKŁADNIĘ, bo Twoje posty także będzie kasowane;
GR
  • Rejestracja:prawie 18 lat
  • Ostatnio:ponad 3 lata
0

Witamm kolegów I dziękuję za pomoc, rozwiazanie okazało się bardzo proste musiałem wypełnić pola w zakładce Properties:

Kopiuj
RealName: Real name
Username: username

To wystarczyło aby irc połączył się prawidłowo z serwerem.

dodanie znacznika <code> - furious programming

edytowany 1x, ostatnio: flowCRANE

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.