2017-08-09 93 views
2

我有一个ssl服务器,我想在接收到第一个ssl:recv到原始gen_tcp后降级。假设这可以用来做到这一点,我找不到如何使用它的例子。而且我不是那么擅长使用Erlang的文件尚未http://erlang.org/doc/man/ssl.html#close-2如何使用Erlang的SSL:关闭/ 2

我有点糊涂了上NewController :: PID()

如何=超时()| {NewController :: pid(),timeout()}

谢谢你的帮忙!

回答

0

NewController::pid()这里指的是您要设置为降级TCP套接字的“控制进程”的进程。 gen_tcp套接字上的函数只有在从该进程调用时才有效。除非您想使用来自其他进程的降级TCP套接字,否则您需要在此处发送self()

我能找到的ssl:close/2与元组一起用作第二个参数的唯一例子是this test。下面是该代码的简化版本,以帮助您入门:

% Assuming `SSLSocket` is the SSL socket. 
{ok, TCPSocket} = ssl:close(SSLSocket, {self(), 10000}), 
% You can use `TCPSocket` with `gen_tcp` now. 
gen_tcp:send(TCPSocket, "foo"), 
+0

我收到一个错误,当我这样做时发生超时。 “在后一种情况下,接收到来自对端的TLS关闭警报后,传输连接将切换到NewController进程。” - 同行(客户)是否需要发送特别的东西? – Mike5050