Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy Client bekommt keine Nachrichten vom Server (https://www.delphipraxis.net/95491-indy-client-bekommt-keine-nachrichten-vom-server.html)

Loni 7. Jul 2007 13:27


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:
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
Client:
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;

Loni 7. Jul 2007 15:42

Re: Indy Client bekommt keine Nachrichten vom Server
 
:gruebel:

Loni 7. Jul 2007 17:44

Re: Indy Client bekommt keine Nachrichten vom Server
 
irgendwas muss an den codes doch falsch sein sonst würde es doch gehen -.-

marabu 7. Jul 2007 18:02

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

Loni 7. Jul 2007 19:25

Re: Indy Client bekommt keine Nachrichten vom Server
 
versteh ich nicht :gruebel: :freak:

quantum 8. Jul 2007 03:01

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;

Loni 8. Jul 2007 03:47

Re: Indy Client bekommt keine Nachrichten vom Server
 
danke ich werds probieren aber solle mein cientcode im OnWork ereignis stehen ??

Loni 8. Jul 2007 04:04

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

SirThornberry 8. Jul 2007 08:44

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.

Loni 8. Jul 2007 15:03

Re: Indy Client bekommt keine Nachrichten vom Server
 
kannst du mir ma den code posten bitte


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz