ネットワークプログラミング相談室 Port24
レス数が900を超えています。1000を超えると表示できなくなるよ。
0938デフォルトの名無しさん
2009/10/09(金) 22:41:28自分も>>934と同様に、状態変数で管理してたよ。
・Type待ち
--> 初期状態
・Length待ち
--> 1byte固定なら1個、2byte固定なら2個、可変長ならN個の状態
・Value処理中
--> 受信カウンタを併用(初期値は0, Lengthになれば終了)
実装はインスタンス生成時に受信バッファを渡し、後はgetで取得するイテレータになる。
>>933
(Valueが更にTLVとして定義される)階層的なTLV構造で、それが再帰的である、
または複雑な構造(構文)を持つなら、yaccを使うのは良いアイデアかもしれない。
その場合、前記のイテレータをスキャナ(字句解析)として位置付け、
Typeをトークン(字句)として返すよう実装することになる。
yacc以外だと、precssというコードジェネレータを使うのが良いかもしれない。
レス数が900を超えています。1000を超えると表示できなくなるよ。