在 Elixir 中设置 gen_tcp 的参数

Posted

技术标签:

【中文标题】在 Elixir 中设置 gen_tcp 的参数【英文标题】:set parameters of gen_tcp in Elixir 【发布时间】:2014-05-18 01:59:42 【问题描述】:

我正在尝试使用 Erlang gen_tcp 在 Elixir 中通过 TCP 连接接受数据

:ok, socket = :gen_tcp.connect("127.0.0.1" ,2000,[:binary, :packet, 0])
receive_data(Socket, [])

但是由于connect 的错误参数,这不起作用。如何在 Elixir 中设置二进制和数据包值?

Here 解释参数含义。但我需要支持才能在 Elixir 中设置参数。

【问题讨论】:

【参考方案1】:

问题不在于参数是否正确,而在于地址。 要调用erlang,需要使用字符列表

:ok, socket = :gen_tcp.connect('127.0.0.1', 2000, [:binary, packet: 0])

注意'127.0.0.1' 而不是"127.0.0.1"

【讨论】:

【参考方案2】:

查看 gen_tcp 的文档,您无法在连接上设置数据包选项。 http://erlang.org/doc/man/gen_tcp.html#type-connect_option

【讨论】:

谢谢!您能否告诉我如何设置 connect/3 方法的连接选项参数。通常一个 TCP 连接只需要 IP 和端口。我有点困惑,因为我是 Erlang 的新手。 只是ok, Socket = gen_tcp:connect(127,0,0,1, 8091, [binary, active,true]). 见-learnyousomeerlang.com/buckets-of-sockets#tcp-sockets 谢谢格雷马尔金。有效。问题出在 IP 上。它应该是 127, 0, 0, 1 是二元和活性原子吗? :binary, :active 是的,erlang 中以小写开头的单词是原子。

以上是关于在 Elixir 中设置 gen_tcp 的参数的主要内容,如果未能解决你的问题,请参考以下文章

Elixir和mongodb聚合

在 Databricks 中设置驱动程序内存配置

在 .NET Format16bppGrayScale 图像中设置单个像素

如何在qmake中设置libs顺序?

如何在 Graphviz 中设置输出图像的宽度和高度

Idea中设置JVM参数