私は、ソケット(TCPとUDPの両方)からのバイナリデータの解析を含むerlangアプリケーションを持っています。 今プラットフォームに依存しないソケットベースのバイナリ解析コード
TCP sock : Opts = [binary, {packet, 0}, {reuseaddr, true}, {keepalive, true}, {backlog, 30}, {active, false}],
UDP sock : [binary,{active,once},{recbuf,2097152}]
、私はソケットから取得するデータを解析する際に、私は次のように行います:TCPとUDPの靴下のための私のオプションは以下のとおりであるので、バイナリデータは、いくつかの特定のプロトコルごとのようです(UNIXの場合):
<< Version:4/big-unsigned-integer-unit:8, Length:2/big-unsigned-integer:8, _Rest/binary >> = Bin_event_From_Socket.これは、LINUXがリトルエンディアンベースであるため、LINUXで実行すると問題になります。だから、私のここでのオプションは、上記のコードで 'big'を 'little'に変換することです。
しかし、ErlangはVMベースの言語であり、私はプラットフォームに依存しないコードを書くためのいくつかの機能を備えているに違いありません。私はNEtを検索しましたが、それについてはほとんど見つけられませんでした。
ここで問題となるのは、プラットフォームに依存しないソケットデータ解析コードを書く方法です。ありがとうございました。
おかげアダム。しかし、私がペーストしたリンクのドミトリーによる答えは、より説得力があります。 – Arunmu
ああ、私はあなたの質問を誤解しました。あなた自身の答えを受け入れてください。 :-) –
ああ...私はしません。 :) – Arunmu