I a établi une connexion avec un client de cette façon:limitation de la mémoire tampon de réception
gen_tcp:listen(1234,[binary,{packet,0},{reuseaddr,true},{active,false},{recbuf,2048}]).
Ce code effectue le traitement des messages:
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.
Mon OS est Windows. Lorsque la taille du message est de 1024 octets, je perds des octets dans Data
. Le serveur envoie ACK + FIN au client. Je crois que l'Erlang est limité à 1024 octets, donc j'ai défini recbuf
.
Où le problème est: Erlang, Windows, matériel?
Merci.
Vraiment aucune idée du problème? – Bertaud
Je ne suis pas un Erlang, donc je ne peux pas vraiment comprendre ce que vous faites. Quel est exactement le problème? –