【发布时间】:2020-11-10 18:16:16
【问题描述】:
我想为我的 Indy TCP 客户端使用自定义 TIdIOHandler,但我不知道如何设置它。我创建了一个新的 IOHandler 类,注册了TIdIOHandler.RegisterIOHandler,然后我将TIdTCPClient.CreateIOHandler 与我的新处理程序引用一起使用。现在,当我尝试写信给TIdTCPClient.Socket 时,我得到“抽象错误”异常...除了我的示例之外,我还需要配置其他东西吗?
TIdEnhancedIOHandler = class(TIdIOHandlerSocket)
public
function Acknowledge(Command: Cardinal = 0): Boolean;
end
{this is a client in a thread}
constructor TMyTCPClient.Create(const AHost: String; APort: Word);
begin
inherited Create;
FreeOnTerminate:= True;
TIdEnhancedIOHandler.RegisterIOHandler;
TCPClient:= TIdTCPClient.Create;
TCPClient.CreateIOHandler(TIdEnhancedIOHandler);
TCPClient.ConnectTimeout:= 1000;
TCPClient.ReadTimeout:= -1;
TCPClient.Host:= AHost;
TCPClient.Port:= APort;
RetSuccess:= False;
RetMessage:= 'Unknown error.';
end;
procedure TMainClient.Execute;
var CMD: Cardinal;
begin
TCPClient.Connect;
TCPClient.Socket.Write(CMD);
end;
【问题讨论】:
标签: delphi indy delphi-10.3-rio