あなたが引用したページは、メッセージをうまく再現していません。レミーが実際に書いたものは次のとおりです。
SendCmd() は、テキスト コマンド/パラメータ専用に設計されています。SendCmd() が終了した後にバイナリ データを送信する必要があり、サーバーはクライアントに応答を返した後にバイナリ データを読み取る必要があります。例えば:
- - クライアント - -
begin
IdTCPClient1.SendCmd('DoIt', 200);
// send binary data, such as with Write(TStream) or Write(TIdBytes)...
end;
Write彼が話していたメソッドは、TIdIOHandlerクラスのメンバーです。あなたのTIdTCPConnectionオブジェクトはそのIOHandlerプロパティにそのクラスのインスタンスを持っています。実際、それはSendCmd関数がその文字列を送信するために使用するものです。
この表記は、入力にパラメーターを受け入れるメソッドWrite(TIdBytes)を使用することを意味します。WriteTIdBytes
Writeバイナリ データが既にストリームまたはバイトの動的配列にある場合は、それらのいずれかをメソッドに直接渡すことができます。WriteFileファイルの名前を指定すると、外部ファイル全体を送信するメソッドもあります。ストリーム バージョンを使用する場合は、ストリームの長さを自動的に含めるオプションがあります。
これらの構造のいずれかにまだデータがない場合は、Writeさまざまなサイズの整数型を受け入れるメソッドを使用してデータを断片的に書き込むか、データを にコピーしてTMemoryStreamから に渡すことができますWrite。