2016-02-07 12 views
5

Ben ssltcp ile bu basit kod yazmak:erlang güvenli tcp içinde {aktif, N} modu

ssl:start(). 
{ok, ListenSocket} = ssl:listen(9999, [{certfile, "cert.pem"}, {keyfile, "key.pem"},{reuseaddr, true}]). 
{ok, Socket} = ssl:transport_accept(ListenSocket). 
ssl:ssl_accept(Socket). 
ssl:setopts(Socket, [{active, once}]). 

sorunsuz çalışıyor ama {active, 3} ile {active, once} değiştirdiğinizde, bu hatayı döndürür:

{error,{options,{socket_options,{active,3}}}}

Güvenli tcp'de {active, N} modunu nasıl kullanabilirim?

cevap

6

SSL bağlantıları için {active,N} modu uygulanmadı. Orijinal olarak {active,N} kipini yazdım ve muhtemelen SSL için uygulamayı incelediğimde, Erlang SSL soketlerinin altta yatan TCP soketlerinin üzerinden uygulanmasının, protokol uygulamasının bir parçası olarak aktif ve pasif modlar arasındaki bu soketlerdeki değişiklikleri içerdiğini buldum ve bu nedenle {active,N}'un SSL için uygulanması, yalnızca bu modda temeldeki bir soketin açılması meselesi değildir.

İlgili konular