2012-04-12 37 views
6

Bir TIdHttpServer var, bazı komutları istemcilere geri göndermek için bağlantıyı açık tutmalıyım. Bir düğmeye bastığımda ve tüm bağlı istemcilere bir komut gönderdiğimde yinelemek istiyorum.Bağlı tüm istemcilere komut gönderme

Bunu nasıl yapabilirim?

+2

indy sürümü? – RRUZ

+0

Delphi xe 2'yi indy 10 ile kullanıyorum – opc0de

cevap

10

İstemcileri almak için Contexts özelliğini kullanabilir ve daha sonra bir ileti gönderebileceğiniz her bir müşterinin IOHandler numarasını kullanabilirsiniz.

Var 
    Clients : TList; 
    i : integer; 
begin 

    if not Assigned(IdTCPServer1.Contexts) then exit; 

    Clients:=IdTCPServer1.Contexts.LockList; 
    try 
    for i := 0 to Clients.Count-1 do 
     try 
     TIdContext(Clients[i]).Connection.IOHandler.Write(LBuffer);//LBuffer is a TBytes with the data to send 
     except 
     ... 
     end; 
    finally 
    IdTCPServer1.Contexts.UnlockList; 
    end; 

end; 
İlgili konular