| Autor |
Beitrag |
flaschenkind
Hält's aus hier
Beiträge: 6
|
Verfasst: 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:
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:
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
      
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)
|
Verfasst: 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 
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 01.08.06 20:09
Wie meinst du das, dem Code in OnConnected zu verlagern?
|
|
alias5000
      
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)
|
Verfasst: Di 01.08.06 20:13
_________________ Programmers never die, they just GOSUB without RETURN
|
|
flaschenkind 
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 01.08.06 20:17
"Der markierte markierte Teil aus dem Client- Code"
Wie meinste das?
|
|
alias5000
      
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)
|
Verfasst: 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 
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 01.08.06 20:48
Ne, irgentwie nicht. Was meinste damit dahin auslagern?
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
      
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)
|
Verfasst: 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
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 01.08.06 20:54
Moin!
@ flaschenkind: Ä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 
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 01.08.06 23:43
Einloggen, um Attachments anzusehen!
|
|
alias5000
      
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)
|
Verfasst: Mi 02.08.06 16:08
Ich würd vorschlagen, dass du erstmal das machst, was ich oben geschrieben hab
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
|
|