ソケット (TCP と UDP の両方) からのバイナリ データの解析を含む erlang アプリケーションがあります。バイナリ データは特定のプロトコルに従っているため、TCP および UDP ソックスのオプションは次のとおりです。
TCP 靴下: Opts = [バイナリ、{パケット、0}、{reuseaddr、真}、 {キープアライブ、真}、{バックログ、30}、{アクティブ、偽}]、
UDP ソックス: [バイナリ、{アクティブ、一度}、{recbuf、2097152}]
さて、ソケットから取得したデータを解析すると、次のようになります (UNIX の場合):
<< バージョン:4/big-unsigned-integer-unit:8, 長さ:2/big-unsigned-integer:8, _Rest/binary >> = Bin_event_From_Socket.さて、LINUX はリトル エンディアン ベースであるため、LINUX で実行すると問題が発生します。したがって、ここでのオプションは、上記のコードで「大きい」を「小さい」に変換することです。
しかし、Erlang は VM ベースの言語であるため、プラットフォームに依存しないコードを作成する機能が必要です。NET を検索しましたが、あまり見つかりませんでした。
では、ここでの質問は、プラットフォームに依存しないソケット データ解析コードをどのように記述できるかということです。ありがとう。