如何使用Erlang ssl:close/2

如何使用Erlang ssl:close/2,erlang,otp,gen-tcp,Erlang,Otp,Gen Tcp,我有一个SSL服务器,我想在收到第一个SSL:recv后将其降级为原始的gen_tcp。假设这可以用来做,我找不到一个如何使用这个例子。我还不太擅长使用Erlang/OTP文档 我对文档中的NewController::pid()有点困惑: How=timeout()|{NewController::pid(),timeout()} NewController::pid()这里指的是要设置为降级TCP套接字的“控制进程”的进程gen_tcp套接字上的函数只有在从该进程调用时才能工作。除非您想使用

我有一个SSL服务器,我想在收到第一个
SSL:recv
后将其降级为原始的gen_tcp。假设这可以用来做,我找不到一个如何使用这个例子。我还不太擅长使用Erlang/OTP文档

我对文档中的
NewController::pid()
有点困惑:

How=timeout()|{NewController::pid(),timeout()}
NewController::pid()
这里指的是要设置为降级TCP套接字的“控制进程”的进程
gen_tcp
套接字上的函数只有在从该进程调用时才能工作。除非您想使用另一个进程中降级的TCP套接字,否则您需要在此处发送
self()

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

% 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"),

当我这样做时,我得到一个错误,超时。“在后一种情况下,传输连接将在接收到来自对等方的TLS关闭警报后移交给NewController进程。”--对等方(客户端)是否需要发送特殊信息?