Autor Beitrag
flaschenkind
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 01.08.06 18:45 
Ich will einen Chat Programmieren. Jetzt scheitert es aber schon beim Verbinden :(
Ich habe einen Clienten und Server. Der Server ist gestartet und läuft. Und ich habe einen Clienten. Der soll zum Server verbinden, das tut aber irgentwie nicht.

Meine Codes:
Server starten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
if IdTCPServer1.Active = False then
begin
  Button1.Caption := 'Bitte warten';
  Button1.Enabled := False;
  SpinEdit1.Enabled := False;
  IdTCPServer1.DefaultPort := SpinEdit1.Value;
  IdTCPServer1.Active := True;
  Label2.Caption := 'Online';
  Label2.Font.Color := clGreen;
  Button1.Enabled := True;
  Button1.Caption := 'Server Stoppen';
end
else
begin
  Button1.Caption := 'Bitte warten';
  Button1.Enabled := False;
  IdTCPServer1.Active := False;
  Label2.Caption := 'Offline';
  Label2.Font.Color := clRed;
  SpinEdit1.Enabled := True;
  Button1.Enabled := True;
  Button1.Caption := 'Server Starten';     
end;


Client verbinden:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
if IdTCPClient1.Connected = False then
begin
  Button1.Caption := 'Bitte warten';
  Button1.Enabled := False;
  SpinEdit1.Enabled := False;
  IdTCPClient1.Connect(Edit1.Text, SpinEdit1.Value);
  if IdTCPClient1.Connected = True then
  begin
    Label2.Caption := 'Online';
    Label2.Font.Color := clGreen;
    Button1.Caption := 'Trennen';
  end
  else
  begin
    Button1.Caption := 'Verbinden';
    ShowMessage('Es ist ein Fehler beim Verbinden aufgetreten.');
  end;
  Button1.Enabled := True;

end
else
begin
  Button1.Caption := 'Bitte warten';
  Button1.Enabled := False;
  IdTCPClient1.Disconnect;
  Label2.Caption := 'Offline';
  Label2.Font.Color := clRed;
  SpinEdit1.Enabled := True;
  Button1.Enabled := True;
  Button1.Caption := 'Verbinden';     
end;
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 01.08.06 19:46 
Bist du dir sicher, dass er nicht verbindet? Verlager den Code nach idTCPClient.connect mal ins OnConnected Ereignis, da IMHO der Befehl connect in einem anderen Thread ausgeführt wird und somit schon bevor die Verbindung steht mit der Ausführung der nachfolgenden Befehle begonnen wird.

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
flaschenkind Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 01.08.06 20:09 
Wie meinst du das, dem Code in OnConnected zu verlagern?
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 01.08.06 20:13 
user profile iconflaschenkind hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
if IdTCPClient1.Connected = False then
begin
  Button1.Caption := 'Bitte warten';
  Button1.Enabled := False;
  SpinEdit1.Enabled := False;
  IdTCPClient1.Connect(Edit1.Text, SpinEdit1.Value);
  if IdTCPClient1.Connected = True then
  begin
    Label2.Caption := 'Online';
    Label2.Font.Color := clGreen;
    Button1.Caption := 'Trennen';
  end
  else
  begin
    Button1.Caption := 'Verbinden';
    ShowMessage('Es ist ein Fehler beim Verbinden aufgetreten.');
  end;
  Button1.Enabled := True;


{...}


Der markierte markierte Teil aus dem Client- Code

_________________
Programmers never die, they just GOSUB without RETURN
flaschenkind Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 01.08.06 20:17 
"Der markierte markierte Teil aus dem Client- Code"

Wie meinste das?
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 01.08.06 20:24 
Wo liegt dein Problem? du sollst den Teil, den ich dir grade orange markiert habe (achtung: ab Zeile 7, die Forensoftware hat hier einen Bug) in das Ereignis TidTCPClient.OnConnected auslagern. Kommst du mit?

_________________
Programmers never die, they just GOSUB without RETURN
flaschenkind Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 01.08.06 20:48 
Ne, irgentwie nicht. Was meinste damit dahin auslagern?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
IdTCPClient1.Onconnected(if IdTCPClient1.Connected = True then
  begin
    Label2.Caption := 'Online';
    Label2.Font.Color := clGreen;
    Button1.Caption := 'Trennen';
  end
  else
  begin
    Button1.Caption := 'Verbinden';
    ShowMessage('Es ist ein Fehler beim Verbinden aufgetreten.');
  end;
  Button1.Enabled := True;);

Das geht ja nicht. Ich verstehe nicht, was du meinst :(
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 01.08.06 20:52 
Du weißt, was das Ereignis OnConnected bei idTCPClient1 ist und wie man da Code reinschreibt?

_________________
Programmers never die, they just GOSUB without RETURN
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 01.08.06 20:54 
Moin!

@user profile iconflaschenkind: Ähm, könnte es sein, dass du eher in die Kategorie "Netzwerkanfänger" gehörst? ;)

Falls ja, und du dich da eher mit Code-Schnipseln von anderen Leuten rumquälst, dann schau doch mal hier hin, vielleicht kommst du damit für den Anfang besser klar. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
flaschenkind Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 01.08.06 23:43 
user profile iconNarses hat folgendes geschrieben:
Moin!

@user profile iconflaschenkind: Ähm, könnte es sein, dass du eher in die Kategorie "Netzwerkanfänger" gehörst? ;)

Falls ja, und du dich da eher mit Code-Schnipseln von anderen Leuten rumquälst, dann schau doch mal hier hin, vielleicht kommst du damit für den Anfang besser klar. ;)

cu
Narses
Es geht. Ich habe mit Indy schon nen HTTP Server gemacht und kann jetzt nen andern PC zum Teil fernsteuern ;)
Aber hier muss ich ja vom Clienten zum Server connecten, da ist es nur ne Internet Seite, die ich aufrufe.
Im Anhang ist mal der Komplette Code, falls den Einer will. Ich hoffe, mir kann dann jemand helfen ;)
Einloggen, um Attachments anzusehen!
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mi 02.08.06 16:08 
Ich würd vorschlagen, dass du erstmal das machst, was ich oben geschrieben hab :roll:
Wenn du das gemacht hast und es dann immer noch nicht funtzt, dann schau ich mir evtl. mal die Source komplett an, aber erstmal will ich, dass du das machst.

_________________
Programmers never die, they just GOSUB without RETURN