sockets - 二郎打开 socket 还是知道的

标签 sockets erlang

我怎么知道erlang是否打开套接字?

最佳答案

使用erlang:port_info/1。如果套接字已关闭,则返回undefined。例如:

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方式。最好让您的代码假定套接字是打开的,并且如果由于尝试使用已经关闭的套接字而遇到错误,请使其崩溃并让其他类似主管的错误处理。

关于sockets - 二郎打开 socket 还是知道的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5715657/

相关文章:

java - 连接来自 BufferedReader 的字符串并传递给 UI 线程

c# - 通过套接字C#的远程MS PowerPoint幻灯片

erlang - 如何查找erlang ets表字段信息?

Erlang:这可以在没有 list:reverse 的情况下完成吗?

Erlang 的 Emacs/TextMate 代码完成?

swift - 流式套接字服务器端 swift

python - 错误 - 值错误 : invalid literal for int() with base 10: ' '

c - 资源暂时不可用 - MSG_DONTWAIT 标志

erlang - 配置或应用程序中的值在哪里 :set_env go? 我如何获取它们?

concurrency - 绕圈发送消息。