2012-04-12 19 views
6

私はTIdHttpServerを持っています。いくつかのコマンドをクライアントに送り返すために、接続を開いたままにしておく必要があります。私はボタンを押して、接続されているすべてのクライアントにコマンドを送信すると、繰り返したいと思う。接続されたすべてのクライアントにコマンドを送信します。

どうすればいいですか?

+2

indyのバージョン? – RRUZ

+0

私はindy 10でdelphi xe 2を使用しています – opc0de

答えて

10

Contextsプロパティを使用してクライアントを取得し、各クライアントのIOHandlerを使用すると、メッセージを送信できます。

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; 
関連する問題