6

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

これどうやってするの ?

4

1 に答える 1

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;
于 2012-04-12T05:25:10.077 に答える