私は、TClientSocket
を使って、C#で書かれた別のアプリケーションにデータを送信しているアプリケーションをDelphiで書いています。多くの理由から、C#アプリケーションは応答が遅く、Delphiアプリケーションをブロックし、設定したタイムアウトを尊重しません。Delphi永続的接続のTClientSocket
私のDelphiアプリケーションは、このような応答を読み取ります
Sock.Socket.ReceiveText
これは、応答を待つアプリケーションの原因となります。私が代わりにこれを行う場合でも、アプリケーションの待機とタイムアウトを尊重:
while not receiveData do
begin
if Sock.Socket.ReceiveLength > 0 then
begin
receiveData := True;
end;
Inc(Cont);
Sleep(100);
if (Cont > 10) then
raise Exception.Create('Timeout');
end;
私のDelphiのアプリは2つの要求を送信します。最初の1回はタイムアウトしますが、C#はまだそれを処理しています。私のDelphiアプリケーションは2番目のリクエストを送信し、今回はC#が最初のリクエストのレスポンスを送信します。
2番目の要求は最初の要求のデータを受信しますか?あるいは、私がDelphiでタイムアウトしたとき、彼らは情報を渡すでしょうか?