next up previous contents
Next: launcher の例 : ox Up: TCP/IP でのセッションのスタート Previous: Launcher

   
byte order の決定

コントロールプロセス, 計算プロセス ともに, 起動直後に 1 byte のデータを書き出し flush する. そのあと, 1 byte のデータを読み込む. クライアントはコントロールプロセス, 計算プロセス につながるファイルディスクリプタの両方から まず 1 byte のデータを読む. そのあと 1 byte のデータを書き出し flush する. 1 byte のデータは, 0, 1, FF のどれかであり, 0 は以下の通信において int32 をおくるのに, network byte order を使用したい, 1 は以下の通信において int32 をおくるのに, little endian を使用したい, FF は以下の通信において int32 をおくるのに, big endian を使用したい, という意味である. 両者の希望が一致しない場合はつねに 0 (network byte order) を使用する. Network byte order しか実装していないシステムでは, 0 をおくればよい. ただし効率が問題となる通信において, network byte order への変換は おおきなボトルネックとなることがあることを了解しておくべきである.

#define OX_BYTE_NETWORK_BYTE_ORDER    0
#define OX_BYTE_LITTLE_ENDIAN         1
#define OX_BYTE_BIG_ENDIAN         0xff



Nobuki Takayama 平成14年1月20日