установить параметры gen_tcp в Эликсире

Я пытаюсь принять данные через TCP-соединение в Elixir, используя Erlang gen_tcp

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

Но это не работает из-за плохих аргументов connect. Как установить бинарные и пакетные значения в Эликсире?

Здесь объясняется значение параметров. Но мне нужна поддержка для установки параметров в Эликсире.


person Lahiru    schedule 05.04.2014    source источник


Ответы (2)


Глядя на документацию gen_tcp, вы не можете установить параметр пакета для соединения. http://erlang.org/doc/man/gen_tcp.html#type-connect_option

person graymalkin    schedule 05.04.2014
comment
Спасибо!. Не могли бы вы рассказать мне, как установить параметр опции подключения метода connect/3. Обычно TCP-соединение требует только IP и порта. Я немного смущен, потому что я новичок в Erlang. - person Lahiru; 05.04.2014
comment
просто {ok, Socket} = gen_tcp:connect({127,0,0,1}, 8091, [binary, {active,true}]). См. - learnyousomeerlang.com/buckets-of-sockets#tcp-sockets - person graymalkin; 06.04.2014
comment
Спасибо, Греймалкин. Это сработало. Проблема была в ИП. это должно быть {127, 0, 0, 1} - person Lahiru; 06.04.2014
comment
бинарные и активные атомы? : двоичный, : активный - person freedrull; 07.08.2015
comment
Да, слова в эрланге, начинающиеся со строчной буквы, являются атомами. - person graymalkin; 07.08.2015

Проблема не в параметрах, которые правильные, а в адресе. Чтобы вызвать erlang, вам нужно использовать список символов

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

Обратите внимание на '127.0.0.1' вместо "127.0.0.1".

person Andrew    schedule 30.09.2016