Пакеты иногда конкатенируются

Я пытаюсь сделать простой сервер/приложение на 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]}.

Проблема в том, что пакеты иногда конкатенируются при отправке или получении, что приводит к неожиданному поведению, поскольку стражи рассматривают следующий пакет как часть переменной.

Есть ли способ сделать так, чтобы каждый пакет отправлялся как одно сообщение принимающему процессу?

5
задан scohe001 21 August 2017 в 21:41
поделиться