TIdTCPClient
次のコードを考えると、これは私のプログラムが実行されたときに私 と関係がある最初のコードです
try
if not TCPclient.Connected then
begin
TraceInfo(TCPclient.Host + ' Server not connected - reconnect');
TCPclient.Connect();
TCPclient.GetResponse(200);
ConnectedToServer();
TraceInfo(TCPclient.Host + ' Connect OK');
end;
except // when trying to connect to server
on EIdAlreadyConnected : Exception do
begin
TraceWarning(TCPclient.Host + ' Attempt to Connect when already connected');
end
else // Failed to connect for any other reason
begin
TraceError(TCPclient.Host + ' Connect FAILED !!!!');
Exit;
end;
end;
// we either connected or noticed that we were already connected
try
resultCode := TCPclient.SendCmd(theMessage);
if resultCode = 200 then
begin
TraceInfo(TCPclient.Host + ' Sent OK');
Result := TCPclient.LastCmdResult.Text.Text;
DisconnectFromServer(TCPclient);
Exit;
end
else
begin
TraceWarning(TCPclient.Host + ' Send rejected by server (result code = ' + IntToStr(resultCode) + ') !!!!');
DisconnectFromServer(TCPclient);
Exit;
end;
except
on E : Exception do // EIdNotConnected
begin
Result := '';
TraceError(TCPclient.Host + ' Send FAILED (exception "' + E.ClassName + '")');
end;
終わり;
トレース ログに表示される理由がわかりません
00:00:00 [10.21.18.211 Server not connected - reconnect] 12:21:38 PM
00:00:01 [10.21.18.211 Attempt to Connect when already connected] 12:21:40 PM
00:00:01 [10.21.18.211 FAILED to connect to server] 12:21:40 PM
00:00:01 [10.21.18.211 Send FAILED (exception "EIdNotConnected")] 12:21:40 PM
私のコードで明らかに間違っていることを誰かが見ることができますか? または、あなたが私を助けるのを助けるために、私はより多くの情報を提供できますか?
前もって感謝します
明確にするために、更新:
どうすれば持つことができますか
TCPclient.Connected でない場合は、TraceInfo(TCPclient.Host + ' サーバーが接続されていません - 再接続') を開始します。
その後
TraceError(TCPclient.Host + ' Send FAILED (exception "' + E.ClassName + '")');