indy10中idtcpclient的使用问题[和大华电子称数据交换]

在实际事务应用中,多次打开server进行大写。其中遇到一些问题,由于时间关系,没有好好整理,虽然问题解决了,

但原因和其他方法没有去进一步测试。

1、每个单元用本地TidTCPClient变量连接server时,单元间会冲突。是disconnect不到位,还是什么问题,还不清楚。

目前解决办法是通过线程完成:

在线程idthrdcmpnt1的onrun事件中:

procedure TFrame_UpdownSaleData.idthrdcmpnt1Run(Sender: TIdThreadComponent);
begin
  getSalesRecord(mmo1);//打开连接完成存取数据,然后关闭和free连接
  idthrdcmpnt1.Stop;//stop线程
end;

2、要关闭一个tcpclient的connect,需要执行下面语句,才能够实现。

    tcpipClient.CheckForGracefulDisconnect(True);
    tcpipClient.Disconnect;

3、写数据时,由于大华没有提供具体的技术资料。所以花费不少时间。要注意的是:write()命令后,其返回一行字符串。!ou【plu码】+其他,如果写失败则返回空值。因此要配套使用write and readln,而且要判断是否失败。

原文地址:https://www.cnblogs.com/usegear/p/3323013.html