如何在主从配置中建立连接?

问题描述

我想在做一些数值工作的主机和许多从机之间建立连接。双方都应该发送和接收命令和数据。我的问题是-在一个主服务器中使用一个idCmdTcpserver并在每个从属服务器中使用一个idCmdTCPClient是否足够?或者这需要在主服务器和每个从属服务器中使用一对Cmdserver和CmdClient? 这是我第一个使用Indy(v。10)和远程应用程序之间进行TCP通信的应用程序。在从属端使用idCmdTCPCLient时,我看到了一些问题-看起来在接收对主控器中发送给idCmdTcpserever的命令的答复时遇到了麻烦。当我将idCmdTCPClient替换为idTCPClient时,它将正常接收答复。


    procedure TFSlave.btn_HeartbeatClick(Sender: TObject);
    const
      Cmd =  'HEARTBEAT';
    var
      Reply: TIdReply;
    begin
      display('Slave','sending command: "' + Cmd + '"');
      IdTCPClient.SendCmd(Cmd,200);
      Reply := IdTCPClient.LastCmdResult;
      display('btn_Click','Master replied with: ');
      display('btn_Click','"' + Reply.Code + ' ' + Reply.Text.Text + '"');
    end;

其中display()将文本行发送给TMemo事物。

当idTCPCLient为TIdTCPCLient类型时,上述方法起作用,但当其为TIdCmdTCPClient时,则卡住。

所以我的问题是:应该使用哪些Indy-10组件来修复通信? 感谢您对问题的建议或解释。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)