バイナリコードでUDP通信をしたいのですが、
例えば
1バイト目に$11、2バイト目に$d0をTStreamにWriteBufferを用いて入れて
IdUDPServer.SendBuffer(TStream, 2)みたいにして送りたかったの
ですが、うまくできませんでした。なにかいい方法があれば教えてください
あと、別の方法として
IntToBinを用いてIntegerをバイナリの文字列にして、それを
エンコーダーを用いて送ってみようとしましたが、よく分かりませんでした
IdBase64Encoderを使うといいのかもしれませんが、そこら辺も分かる方
がいましたら教えてください。
Indyはバージョンによって仕様が心変わりするので、
質問する時は Indyのバージョンを書かないとダメ。
TIdUDPBase.SendBufferメソッド
◆Indy9
procedure SendBuffer(AHost: string; const APort: Integer; var ABuffer; const AByteCount: Integer);
◆Indy10
procedure SendBuffer(AHost: string; const APort: Integer; const ABuffer: TIdBytes);
お騒がせしましたが、解決しました。
エンコーダーがどうこうとかじゃなくて
もっと単純にできました。
例えば2バイト送る場合なら
var
buf1 : Byte;
buf2 : Byte;
buf : Word;
buf1 := $11;
buf2 := $ff;
buf := buf1 + buf2 * 256;
IdUDPClient1.SendBuffer(buf, 2);
こんな感じです。
ツイート | ![]() |