还是知道打开Erlang套接字

问题描述

| 我怎么知道用erlang打开套接字还是不打开?

解决方法

使用erlang:port_info / 1。如果插座关闭,它将返回“ 0”。例如: Eshell V5.8.3(用^ G中止) 1> {ok,S} = gen_tcp:connect(\“ localhost \”,8000,[binary,{active,false}])。 {ok,#Port} 2> erlang:port_info(S)。 [{name,\“ tcp_inet \”}, {链接,[]}, {id,634}, {连接的,}, {input,0}, {output,0}] 3> gen_tcp:close(S)。 好 4> erlang:port_info(S)。 未定义 但是请谨慎使用此代码进行防御性编程,因为这不是Erlang方式。最好让您的代码假定套接字是打开的,并且如果由于尝试使用已经关闭的套接字而遇到错误,请使其崩溃并让其他类似主管的错误处理。,当您的应用达到您想知道的程度时,请在终端中尝试此操作 inet:i(),您在说哪种插座?我的猜测是,如果套接字未打开,大多数套接字函数将返回一个错误元组。