我有一個使用Delphi編寫的應用程序,使用TClientSocket
將數據發送到用C#編寫的另一個應用程序。由於很多原因,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應用程序發送兩個請求。第一次,但C#仍在處理它。我的Delphi應用程序然後發送第二個請求,這次C#發送第一個請求的響應。
第二個請求是否會接收第一個請求的數據?或者,當我在Delphi中超時時,他們會交叉信息嗎?