ネットワーク経由で送信する前にストリームに変換するコレクションを使用して、 IdTCPServer と IdTCPClient の間でデータを交換しようとしています。残念ながら、どのように試しても、クライアントとサーバーの間でストリームを渡すことができないようです。コードは常にIdTCPClient1.IOHandler.ReadStream(myStream, -1, True)行でハングします。
私のコードの関連部分を以下に示します。
クライアント側
with ClientDataModule do
begin
try
try
intStreamSize := StrToInt(IdTCPClient1.IOHandler.ReadLn); // Read stream size
IdTCPClient1.IOHandler.ReadStream(myStream, -1, True); // Read record stream
finally
ReadCollectionFromStream(TCustomer, myStream);
end;
except
ShowMessage('Unable to read the record from stream');
end;
end;
サーバ側
try
try
SaveCollectionToStream(ACustomer, MStream);
finally
MStream.Seek(0, soFromBeginning);
IOHandler.WriteLn(IntToStr(MStream.Size)); // Send stream size
IOHandler.Write(MStream, 0); // Send record stream
end;
except
ShowMessage('Unable to save the record to stream');
end;
この問題を解決するためのご支援をいただければ幸いです。
ありがとう、
Jダニエル