あなたが引用したページは、メッセージをうまく再現していません。レミーが実際に書いたものは次のとおりです。
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)
を使用することを意味します。Write
TIdBytes
Write
バイナリ データが既にストリームまたはバイトの動的配列にある場合は、それらのいずれかをメソッドに直接渡すことができます。WriteFile
ファイルの名前を指定すると、外部ファイル全体を送信するメソッドもあります。ストリーム バージョンを使用する場合は、ストリームの長さを自動的に含めるオプションがあります。
これらの構造のいずれかにまだデータがない場合は、Write
さまざまなサイズの整数型を受け入れるメソッドを使用してデータを断片的に書き込むか、データを にコピーしてTMemoryStream
から に渡すことができますWrite
。