2011-12-06 30 views
1

我们的学校项目是一个BitTorrent客户端。今天我突然得到了一个{tcp_error,#Port<0.2095>,emsgsize}错误,我的问题是什么导致了这个错误?我有option {packet,4}gen_tcp所以我的猜测是封装的长度不匹配4个第一个字节?这真是太奇怪了,因为除握手之外的所有BitTorrent消息都有前4个字节的len。昨天我们能够下载,现在我收到了这些消息。请注意,一些消息到达很好。感谢您对这个问题的想法。什么是erlang emsgsize?

+0

也许你尝试发送/接收大小超过2GB的消息? – W55tKQbuRu28Q4xv

回答

0

当数据包大于接收缓冲区(recbuf选项)或数据包大于指定的最大数据包大小(packet_size选项)时,您将收到emsgsize错误。

0

可能其中一个数据包没有发送正确的头文件,Erlang将其解释为声称数据包非常大的头文件。