delphi - 向所有连接的客户端发送命令

标签 delphi tcp indy

我有一个 TIdHttpServer 我必须保持连接打开才能将一些命令发送回客户端。我想在按下按钮并向所有连接的客户端发送命令时进行迭代。

我该怎么做?

最佳答案

您可以使用 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;

关于delphi - 向所有连接的客户端发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117691/

相关文章:

delphi - 如何获取 SMTP session 的 Indy IdSMTPRelay 日志?

delphi - 是Delphi IDE的dif或补丁添加程序,即有人创建补丁并且我想将其自动添加到我的项目中吗?

node.js - 从 Node js调用带有pAnisChar的Delphi stdcall函数

delphi - 简单的 TListView OwnerDraw 文本字体大小和颜色示例?

c# - 无法两次连接到同一个本地 TCP 服务器

.net - 快速提问 TCP/IP .Net Remoting

Python 套接字编程 - 错误的文件描述符错误

database - Delphi DataModule 用法 - 单个还是多个?

delphi - Indy 10 FTP 空列表

delphi - 在 IdTCPServer1Execute 上使用 IndySleep