Autor Beitrag
Calyptus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 15.08.05 17:50 
Hallo,

ich will einen Chat bauen für mehr wie 2 Leute. Es soll ein Serverprogramm geben und ein paar Clients. Die Clients schicken ihre Nachrichten an den Server. Das Problem ist jetzt wie ich

a) an alle Clients und
b) die Nachricht wieder zurück schicke.

Es muss doch eine andere Lösung geben, als dem Server 32 idTCPClients zu geben oder?

Ich hab das hier gefunden, aber es nicht für Indy hinbekommen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
For i := 0 to ServerSocket.Socket.ActiveConnections -1 do  { hier muss für ServerSocket der Name eures Servers stehen. }
  begin
  with ServerSocket.Socket.Connections [i] do
  if (Connected) then SendText (NachrichtEdit.Text);
end

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Mo 15.08.05 17:56 
schau dir das Chat-Beispiel von den Indys an! das ist ein Chat für mehr als 2

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 15.08.05 18:34 
Ok. Danke. Es tut so halbwegs...

//Edit: Beim Client führt das hier nach ca 3 Sec dazu, das das Programm nicht mehr reagiert:

ausblenden Delphi-Quelltext
1:
2:
 if Client.Connected then
  Memo1.Lines.Add(Client.ReadLn(''5));


Das ganze wird jede Sekunde im Timer ausgeführt.

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 15.08.05 21:04 
Moin!

Du darfst nur lesen, wenn auch Daten da sind; sonst wartet .ReadLn, bis Daten da sind... :wink:

cu
Narses
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 15.08.05 21:11 
Ich hab gedacht die '5' wär das Timeout falls das lesen nicht klappt. Naja.. wie mach ich das dann?

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
CeeJay D-Magic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94

Win XP Prof.
Delphi 7, Lazarus 0.9
BeitragVerfasst: Di 16.08.05 12:29 
Muss es unbedingt eine der indy komponenten sein, wieso nimmst du nicht einfach mal die TServerSocket, bzw. TClientSocket zu benutzen, lad dir dazu folgendes runter
auf dem Thread:

www.delphi-forum.de/...ogramm_43227,20.html

Ich hoffe ich konnte helfen, CeeJay D-Magic
DarkLord05
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 449

WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
BeitragVerfasst: Di 16.08.05 12:39 
[OT]
Vill. will er mit den Indys arbeiten weil die jetzt moderner sind^^ (weiß nicht wie ich mich in diesem Fall anders ausdrücken soll^^).
Aber um es auch mal zu sagen, ich hab mit indy bis jetzt noch nix geschafft und mein kleiner Chat hat einen Server und verschickt auch daten an alle. (OHNE Client)
[/OT]
CeeJay D-Magic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94

Win XP Prof.
Delphi 7, Lazarus 0.9
BeitragVerfasst: Di 16.08.05 12:45 
Geht das überhaupt?? so ohne Client??


Mit indy hab ich auch noch nechts hinbekommen....
Irgendwie zeigt er mir sogar fehler, wenn ich die Indybespiele, die es im Internet zum downloaden gab compilieren will <- Das kann ich überhaupt nicht verstehen!

Wofür gibt es dann diese dämlichen Bsp. wenn sie nicht funktionieren!!! (Nur damit kein Misssverständniß aufkommt, ich besitze die Indy koponenten).
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Di 16.08.05 15:00 
user profile iconCeeJay D-Magic hat folgendes geschrieben:
wieso nimmst du nicht einfach mal die TServerSocket, bzw. TClientSocket zu benutzen


Um erlich zu sein weil ich se nicht finde. Kann es sein das Indy die löscht, oder sind die bei Delphi 7 Prof einfach nicht dabei? Ich würde sie lieber nehmen weil ich dazu ein paar sehr einfache Beispiele habe.

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
DarkLord05
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 449

WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
BeitragVerfasst: Di 16.08.05 17:43 
Also, die gibt es werden aber nur nicht mehr mit-installiert.
KLICK MICH
Da steht wie du die nachinstllieren kannst. Ist ganz einfach^^

@CeeJay D-Magic
Also ich habe das hinbekommen das in meinem Chat nur ein Server ist wo sich alle Clients anmelden müssen. Und der Server hat nicht nebenbei noch einen Client laufen. Weiß gar nicht warum damit so viele ein Problem haben. Gut ein bisschen ausprobieren gehört.
CeeJay D-Magic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94

Win XP Prof.
Delphi 7, Lazarus 0.9
BeitragVerfasst: Do 18.08.05 09:48 
Achso meinst das, das is doch voll easy!
Da bin ich schon weiter 8)

aber ein Problem gibt es dennoch s.h.:www.delphi-forum.de/....php?p=282256#282256

Vielleicht hat da wer ne Lösung?

@Calyptus, konnte dir diese Installationshinweise helfen??