在 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 的参数的主要内容,如果未能解决你的问题,请参考以下文章