AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy Client bekommt keine Nachrichten vom Server
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Client bekommt keine Nachrichten vom Server

Ein Thema von Loni · begonnen am 7. Jul 2007 · letzter Beitrag vom 8. Jul 2007
Antwort Antwort
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#1

Indy Client bekommt keine Nachrichten vom Server

  Alt 7. Jul 2007, 14:27
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 = 'AddKontaktlistethen
    begin
    User:= Copy(Line, Pos('/', Line)+1, (Pos(',', Line))-(Pos('/', Line)+1));
    LMDImageLiBKontaktliste.Items.Add(User);
    end;
end;
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#2

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 7. Jul 2007, 16:42
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#3

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 7. Jul 2007, 18:44
irgendwas muss an den codes doch falsch sein sonst würde es doch gehen -.-
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 7. Jul 2007, 19:02
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
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#5

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 7. Jul 2007, 20:25
versteh ich nicht
  Mit Zitat antworten Zitat
quantum

Registriert seit: 15. Apr 2006
Ort: Kassel
64 Beiträge
 
Delphi XE Professional
 
#6

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 8. Jul 2007, 04:01
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;
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#7

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 8. Jul 2007, 04:47
danke ich werds probieren aber solle mein cientcode im OnWork ereignis stehen ??
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#8

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 8. Jul 2007, 05:04
bei mir hängt sich der server auf mit der prozedur ^^ und es wird kein user der kontaktliste hinzugefügt
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 8. Jul 2007, 09:44
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Loni

Registriert seit: 31. Mär 2007
77 Beiträge
 
#10

Re: Indy Client bekommt keine Nachrichten vom Server

  Alt 8. Jul 2007, 16:03
kannst du mir ma den code posten bitte
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:24 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