我有一个TIdHttpServer我必须保持连接打开,以便将一些命令发送回客户端。我想按下按钮并向所有连接的客户端发送命令时进行迭代。
我该怎么做?
答案 0 :(得分: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;