![]() |
Indy Client bekommt keine Nachrichten vom Server
Hallo ich versuche über WriteLn einen String an alle verbunden Clients zu schicken aber es bekommt kein Client die Nachricht
hier mal die wichtigen Teile der Quelltexte Server:
Delphi-Quellcode:
Client:
procedure TFKyteServer.IdTCPServer1Execute(AContext: TIdContext);
//.. //.. if User<>'' then begin if vleUsers.FindRow(User,iRow) then begin sPwd:=vleUsers.Values[User]; if Passwort=sPwd then begin if not vleIpAdressen.FindRow(IP,iRow) then begin //Verbindung erlauben LiBEreignisse.Items.Add((TimeToStr(now))+': <'+(User)+'> hat sich angemeldet'); vleIPAdressen.InsertRow(IP,User,true); Clientanzahl:=vleIPAdressen.RowCount; //alle User benachritigen for i := 0 to Clientanzahl - 1 do // begin //Es geht un diesen Teil AContext.Connection.IOHandler.Destination:=vleIPAdressen.Keys[i]; // AContext.Connection.IOHandler.WriteLn('/AddKontaktliste'+','+User); // end; end else begin //Verbindung verhindern AContext.Connection.DisconnectNotifyPeer; end; end
Delphi-Quellcode:
procedure TFKyteClient.IdTCPClient1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer); var Line, Command, User: String; begin Line := IdTCPClient1.IOHandler.ReadLn; Command:= Copy(Line, 1, Pos('/', Line)-1); if Command = 'AddKontaktliste' then begin User:= Copy(Line, Pos('/', Line)+1, (Pos(',', Line))-(Pos('/', Line)+1)); LMDImageLiBKontaktliste.Items.Add(User); end; end; |
Re: Indy Client bekommt keine Nachrichten vom Server
:gruebel:
|
Re: Indy Client bekommt keine Nachrichten vom Server
irgendwas muss an den codes doch falsch sein sonst würde es doch gehen -.-
|
Re: Indy Client bekommt keine Nachrichten vom Server
Hallo,
warum bist du so ungeduldig? Wenn du an alle verbundenen Clients etwas schicken möchtest, dann wohl nicht, indem du die Verbindung des gerade angemeldeten Client massakrierst. Iteriere statt dessen besser über IdTcpServer1.Contexts. Grüße vom marabu |
Re: Indy Client bekommt keine Nachrichten vom Server
versteh ich nicht :gruebel: :freak:
|
Re: Indy Client bekommt keine Nachrichten vom Server
Du könntest mal folgendes versuchen:
Delphi-Quellcode:
procedure AddKontaktliste(const User: String);
var contextList: TList; i: Integer; begin contextList := Contexts.LockList; try for i:=0 to contextList.Count-1 do TIdContext(contextList[i]).Connection.IOHandler.WriteLn('/AddKontaktliste'+','+User); finally Contexts.UnlockList; end; end; |
Re: Indy Client bekommt keine Nachrichten vom Server
danke ich werds probieren aber solle mein cientcode im OnWork ereignis stehen ??
|
Re: Indy Client bekommt keine Nachrichten vom Server
bei mir hängt sich der server auf mit der prozedur ^^ und es wird kein user der kontaktliste hinzugefügt
|
Re: Indy Client bekommt keine Nachrichten vom Server
ich hab es bisher immer so gemacht das ich im OnConnect den Thread in einer Liste gespeichert hab und somit dann meine Liste durchgehen konnte.
|
Re: Indy Client bekommt keine Nachrichten vom Server
kannst du mir ma den code posten bitte
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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