[prototype]無理矢理ウェブサーバーとの通信を実現する準備 - ujbcの文字列を変更(2006/02/21)
UJMLはコンパイルするとujbcという中間コードが生成される。このコードがUIEPlayerに読み込まれ、実行されている。
以前「無理矢理ウェブサーバーとの通信を実現するには?」で紹介した、
クライアント→中間コード生成+WEBインタフェース→WEB API(Google、amazon、はてな)
の、「中間コード生成」部分を実装する準備だ。
まず、「UJMLサンプル055:ミラクルな_link()を使いこなそう」でも紹介したように、リンクされる側のujbcを動的に生成できるようにする必要がある。
ウェブサーバーとやり取りしたいのは今のところテキストのみとする。
テキストのみであれば、UJMLサンプル055で紹介した程度のujbcが動的に生成できればサーバーとの通信は実現可能だ。
では、ujbcの中を見てみよう。
まずは、コンパイルされたujbcをバイナリエディタで見てみる。左の画像だ。
※UJMLサンプル055では「俺の名は、、、」が表示されたが、簡略化のため文字列を「HELLO」としている。
よく見ると、HELLOが含まれていることがわかる。(6行目の先頭)
HELLOの直前の"05"は、何となく文字数だろうと予想できる。
ここを、バイナリエディタ上で別の文字列"HELLL"に変更する。写真二枚目。
そして、デバッガー上で実行する。
成功だ。確かに"HELLL"と表示される。写真三枚目。
※どうやら、ファイル中にチェックサム等は持っていないようだ。
次に、文字数を伸ばしてみる。
HELLOの直前の"05"を"06"に変更し、"HELLO"の後に"O"を1文字挿入する。写真四枚目。
そして、デバッガー上で実行する。
成功だ。確かに"HELLOO"と表示される。写真五枚目。
これでほぼ動的にujbcを生成する準備は整った。後は日本語の場合の話と、サーバー側のスクリプトの話だけだ。
続きは次回以降。
コメント