河野真治 @ 琉球大学情報工学です。

In article <squbquyoujs.fsf@stellar.co.jp>, manmos@stellar.co.jp (Hideo "Sir MaNMOS" Morishita) writes
> データや、通信のプロトコルなどで、レーコド数やオクテット数をそのデータ
> 内に含めることは少なくないわけですが、その数値自体を含めたヘッダ長など
> も、それに含めるかどうかは別れてくると思うのです。

最初は「ヘッダーも含める」派だったんですが、最近、ちょっと
態度が変わりました。

ヘッダは大体固定長ですよね。可変になるのはデータ部分。これを
可変長文字列で受けるとすると、
     read  header size
     で、ヘッダから length を取得
     length 分の可変長文字列を用意
     read body 
ってことになると思います。

ま、計算すれば良いだけなんで別に良いんですけどね。前は、

    header の最初に全体のパケット長を入れて、
    とりあえず、4byte 読んで長さを見る
    全体を読み込んで、データ部分をコピーまたは
    データ部分へのポインタと長さを渡す

ってやってたんだけど、それだと、パケットのfreeが面倒。

あと、Java だと部分文字列へのポインタみたいなのを真似しようと
すると面倒だし。

なので、

> 最近、外からもらう仕様は、それらのデータが含まれていない。というか、
> 「仕様書に、どういう数値か書いてないんですけど、headerとtrailerを含め
> ますか?」って聞いたら「普通、入れないでしょう。」見たいなことをいわれ
> るんです。

と言うことになっているんじゃないでしょうか。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科