2012-04-24 10 views
2

現在、私はSSLソケットを扱っています。私のようにそれを設定します。{packet、PacketType} about erlangソケット

{ok, LSocket} = ssl:listen(443, [{packet, http}, 
         {reuseaddr, true}, 
         {active, false}, 
         {certfile, "mycert.pem"}, 
         {keyfile, "mykey.pem"}]). 

が、私は呼び出すことによって、接続を処理する必要があり、別のプロセスにソケットを渡すとき:

ssl:getopts(LSocket, [packet]). 

私が得た:

{ok,[{packet,0}]} 

の代わりに、 :

{ok,[{packet,http}] 

0は「raw paケケ?なぜこれが起こるのでしょうか?

+0

このコードを返す{[OK]を、[{パケットは、http}]}私のためにR14B04 – Isac

+0

実行中のErlangのバージョンは? –

+0

ErlangのバージョンはR15Bです。興味深いのは、最初のリクエストはhttp_requestとして扱われ、他のリクエストはバイナリとして来るということです。 – user601836

答えて

0

あなた自身でErlangをコンパイルしましたか?おそらくあなたは暗号モジュールで何かを混乱させたでしょう。 Erlangのソリューションからコンパイル済みの15B02を使用してみてください:https://www.erlang-solutions.com/downloads/download-erlang-otp

あなたが別のプロセスに渡すとそこに作品の罰金を立証コード:

Erlang R15B02 (erts-5.9.2) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] 

Eshell V5.9.2 (abort with ^G) 
1> {ok, LSocket} = ssl:listen(9443, [{packet, http}, {reuseaddr, true}, {active, false}, {certfile, "priv/ssl/ssl.crt"}, {keyfile, "priv/ssl/ssl.key"}]). 
{ok,{sslsocket,new_ssl, 
       {#Port<0.719>, 
       {config,{ssl_options,[],verify_none, 
            {#Fun<ssl.1.38762831>,[]}, 
            false,false,undefined,1,<<"priv/ssl/ssl.crt">>,undefined, 
            <<"priv/ssl/ssl.key">>,undefined,[],undefined,<<>>, 
            undefined,undefined, 
            [<<0,...>>,<<...>>|...], 
            #Fun<ssl.0.38762831>,true,...}, 
         [{packet,http},{reuseaddr,true},{active,false}], 
         {socket_options,list,http,0,0,false}, 
         [{reuseaddr,true}, 
         {packet_size,0}, 
         {packet,0}, 
         {header,0}, 
         {active,false}, 
         {mode,binary}], 
         {gen_tcp,tcp,tcp_closed,tcp_error}}}}} 
2> 
2> ssl:getopts(LSocket, [packet]). 
{ok,[{packet,http}]} 
3> spawn(fun() -> ssl:getopts(LSocket, [packet]) end). 
<0.42.0> 
4> spawn(fun() -> error_logger:info_msg(ssl:getopts(LSocket, [packet])) end). 
<0.44.0> 
5> 
=INFO REPORT==== 1-Nov-2012::06:07:15 === 
ERROR: {ok,[{packet,http}]} - []