【问题标题】:set parameters of gen_tcp in Elixir在 Elixir 中设置 gen_tcp 的参数
【发布时间】: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 中设置参数。

【问题讨论】:

    标签: tcp erlang elixir erlang-otp


    【解决方案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 中以小写开头的单词是原子。
      猜你喜欢
      • 1970-01-01
      • 2018-06-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多