【发布时间】:2011-06-15 09:16:54
【问题描述】:
我通过这种方式与客户建立了连接:
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、硬件?
谢谢。
【问题讨论】:
-
真的不知道问题所在?
-
我不是 Erlang 人,所以不能真正理解你在做什么。究竟是什么问题?
标签: sockets networking erlang erlang-otp