AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Listbox Inhalt von Server zum clienten schicken???
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox Inhalt von Server zum clienten schicken???

Offene Frage von "htxmlx"
Ein Thema von htxmlx · begonnen am 11. Sep 2008 · letzter Beitrag vom 14. Sep 2008
 
htxmlx

Registriert seit: 23. Aug 2008
124 Beiträge
 
Delphi 7 Enterprise
 
#36

Re: Listbox Inhalt von Server zum clienten schicken???

  Alt 12. Sep 2008, 17:24
Ich poste einfach mal den Code also wenn ein user drauf geht oder runter geht passiert folgendes
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
i: Integer;
Text: String;
begin
Clients.Items.Clear;
For I := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
begin
with ServerSocket1.Socket.Connections [I] do
if (Connected) then SendText('#55');
end;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
  var test: Integer;
begin
Clients.Items.Clear;
For test := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
begin
with ServerSocket1.Socket.Connections [test] do
if (Connected) then SendText('#55');
end;
end;
Erläuterung, also wenn einer runter geht oder drauf geht dann wird die listbox(namens clients) gelöscht und an alle clienten die message '#55' gesendet.
Empfängt ein client diese message wird bei diesem ebenfalls die lsitbox gelöcht und eine message mit
'#99'+Nickname an den server gesendet...
der server empfängt '#99' und weiss das es sich um einen nickname handelt also füft er diesen bei sich in der listbox ein und sendet die nachricht mit '#99'+nickname an alle clienten..
alle clienten empfangen also die messages mit dem '#99' und fügen diese somit auch bei sich in die listbox ein

eigentich ganz simpel, es funktioniert ja auch alles bis auf das problem, dass alle clienten bei mir im test 4 zur gleichen zeit ihre '#99'nickname messages senden..

beim clienten sieht das dann so aus
Delphi-Quellcode:
procedure TForm1.OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
var Text:string;
begin
Text:=Socket.ReceiveText;
Form1.Show;
if (Length(Text) > 2) and (Copy(Text,1,3) = '#77') then
Memo1.Lines.Add(Text);
if (Length(Text) > 2) and (Copy(Text,1,3) = '#99') then
Listbox1.AddItem(Text,Socket);
if (Length(Text) > 2) and (Copy(Text,1,3) = '#55') then
Listbox1.Items.Clear;
if (Length(Text) > 2) and (Copy(Text,1,3) = '#55') then
ClientSocket1.Socket.SendText('#99' + NickName);
end;
die codes: #77 - eine normale chat message
#99 - ein nickname
#55 - befehl zum online liste aktualisiern


ich hoffe du kannst dich da eindeken und verstehst das

Gruß, htxmlx
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz