lwip tcp pcb- ›snd_queuelen показывает большее значение, чем TCP_SND_QUEUELEN

Я пытался реализовать tcp lwip для своей работы (отправитель). Я настроил буферное пространство отправки TCP TCP_SND_QUEUELEN как 32. Но когда происходит потеря пакета, pcb-> snd_queuelen показывает значение больше 32, и клиент отключается. и как это решить? Я настроил TCP_MSS как 1160, а TCP_SND_BUF - (TCP_MSS * 16). Кто-нибудь, пожалуйста, помогите.


person archana    schedule 16.02.2016    source источник


Ответы (1)


Получение большего значения, чем TCP_SND_QUEUELEN, является нормальным. Уже есть дальнейшая логика избавления от этой ситуации. поскольку при отправке пакета передается флаг MSG_DONTWAIT, операция отправки не может быть заблокирована, в этом случае она вернет ошибку. Это причина закрытия сокета.

person archana    schedule 17.03.2016