Registriert seit: 31. Mär 2007
77 Beiträge
|
Indy Client bekommt keine Nachrichten vom Server
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 = 'AddKontaktliste' then
begin
User:= Copy(Line, Pos('/', Line)+1, (Pos(',', Line))-(Pos('/', Line)+1));
LMDImageLiBKontaktliste.Items.Add(User);
end;
end;
|
|
Zitat
|