Что такое erlang emsgsize? - PullRequest
       23

Что такое erlang emsgsize?

1 голос
/ 06 декабря 2011

Наш школьный проект - клиент BitTorrent.Сегодня я внезапно получил ошибку {tcp_error,#Port<0.2095>,emsgsize}, и мой вопрос, что вызвало эту ошибку?У меня option {packet,4} на gen_tcp, так что я думаю, что длина пакета не соответствует 4 первым байтам?Это было бы очень странно, потому что все сообщения BitTorrent, за исключением рукопожатия, имеют первые 4 байта len.Вчера мы смогли скачать, и теперь я получаю эти сообщения.Обратите внимание, что некоторые сообщения приходят очень хорошо.Спасибо за ваши мысли по проблеме.

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

вы получите ошибку emsgsize, когда пакет больше, чем ваш приемный буфер (опция recbuf), или когда пакет больше указанного максимального размера пакета (опции packet_size).

0 голосов
/ 11 октября 2012

Возможно, один из пакетов не отправлен с правильным заголовком, который Эрланг интерпретирует как заголовок, который утверждает, что пакет очень большой.

...