Я пытаюсь сделать простой сервер/приложение на Erlang.
Мой сервер инициализирует сокет с помощью gen_tcp:listen(Port, [list, {active, false}, {keepalive, true}, {nodelay, true}])
, а клиенты подключаются с помощью gen_tcp:connect(Server, Port, [list, {active, true}, {keepalive, true}, {nodelay, true}])
.
Сообщения, полученные от сервера, проверяются стражами, такими как {tcp, _, [115, 58 | Data]}
.
Проблема в том, что пакеты иногда конкатенируются при отправке или получении, что приводит к неожиданному поведению, поскольку стражи рассматривают следующий пакет как часть переменной.
Есть ли способ сделать так, чтобы каждый пакет отправлялся как одно сообщение принимающему процессу?