質問: C# バイト単位の切り出しについて
回答: 文字エンコーディングクラスEncodingには、該当処理をするメソッドが用意されています。 バイト シーケンスにエンコードするメソッドは、GetBytes()メソッドを使います。 バイト シーケンスを文字列にデコードするメソッドは、GetString()メソッドを使います。 [送信側コード例] string TransmittingData = "送信用電文"; byte[] TransmittingBytes = Encoding.GetEncoding("Shift_JIS").GetBytes(TransmittingData); // 略(送信処理でReceivingBytesの電文を送信) [受信側コード例] byte[] ReceivingBytes; // 略(受信処理でReceivingBytesへ電文を格納) string ReceivingData = Encoding.GetEncoding("Shift_JIS").GetString(ReceivingBytes); [コード例の補足説明] 送受信するマシンは、両者共に日本語コード「Shift JIS」を使っているものとしています。 (相手がどのコードを用いるか不明な場合は、エンコーディングの判別処理を付け足す必要があります) [追記] 念のため、質問のコードを確かめようとしましたが、 「EncodingクラスにdecodeB64の定義はありません。」 というエラーが出ますよ。 MSDNサイトで調べても、decodeB64()メソッドはありませんでした。 お手製の文字エンコーディングクラスを使っているのでしたら、その仕様書に従って下さい。 しかし、.NET Framework側で(VC#コンパイラー側で)用意されているEncodingクラスを利用した方が、上記回答の通り簡単です。 質問でのprocessPacket()メソッドは、最初からお手製のメソッドだと思いましたが、これも特殊な通信方式を使うので無いのならば、.NET Framework側で(VC#コンパイラー側で)用意されている各種通信機能を使ったほうが便利です。 おそらく、.NET Framework側で用意されている各種通信機能を使った処理を、processPacket()メソッドでまとめているのだと思いますが。 . [最後に] 質問でのEncodingクラスについては、どのようなライブラリを使っているのか、質問で指定しないとダメです。 聞く相手は、友達では無く、そのライブラリを作ったプログラマーに聞いて下さい。 そうでない場合は、前半に書いたように、.NET Framework側で用意されている機能を使って下さい。