Я установил соединение с клиентом следующим образом:
gen_tcp:listen(1234,[binary,{packet,0},{reuseaddr,true},{active,false},{recbuf,2048}]).
Этот код выполняет обработку сообщений:
loop(Socket)->
inet:setops(Socket,[{active,once}],
receive
{tcp,Socket,Data}->
handle(Data),
loop(Socket);
{Pid,Cmd}->
gen_tcp:send(Socket,Cmd),
loop(Socket);
{tcp_close,Socket}->
% ...
end.
Моя ОС - Windows.Когда размер сообщения составляет 1024 байта, я теряю байты в Data
.Сервер отправляет ACK + FIN клиенту.
Я считаю, что Erlang ограничен 1024 байтами, поэтому я определил recbuf
.
Где проблема: Erlang, Windows, аппаратное обеспечение?
Спасибо.