この方法でクライアントとの接続を確立しました。
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.
私のOSはWindowsです。メッセージのサイズが 1024 バイトの場合、 でバイトが失われますData
。サーバーは ACK + FIN をクライアントに送信します。
Erlang は 1024 バイトに制限されていると思われるため、 を定義しrecbuf
ました。
問題の場所: Erlang、Windows、ハードウェア?
ありがとう。