Re: lengthのながさ
河野真治 @ 琉球大学情報工学です。
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
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735