2016-02-07 6 views
5

मैं इस सरल कोड ssltcp साथ लिखें:{सक्रिय, एन} erlang सुरक्षित टीसीपी में मोड

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}]). 

यह ठीक काम करता है, लेकिन जब मैं {active, 3} साथ {active, once} की जगह, इस त्रुटि देता है:

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

सुरक्षित टीसीपी में {active, N} मोड का उपयोग कैसे कर सकते हैं?

उत्तर

6

{active,N} मोड SSL कनेक्शन के लिए लागू नहीं किया गया है। मैंने मूल रूप से {active,N} मोड लिखा था और जब मैंने एसएसएल के लिए इसे संभवतः कार्यान्वित करने में देखा, तो मैंने पाया कि अंतर्निहित टीसीपी सॉकेट के शीर्ष पर एर्लांग एसएसएल सॉकेट को लागू करने का तरीका प्रोटोकॉल कार्यान्वयन के हिस्से के रूप में सक्रिय और निष्क्रिय मोड के बीच उन सॉकेट में परिवर्तन शामिल है , और एसएसएल के लिए {active,N} को कार्यान्वित करना बस उस मोड में अंतर्निहित सॉकेट खोलने का मामला नहीं है।