TSURKOV
Jun 5 2013, 09:33
Уважаемые знатоки lwip стека. Подскажите пожалуйста как грамотно контролировать tcp соединение, как его перезапустить.
Насколько я понимаю для этой цели используется функция poll, она периодически вызовется, но в момент ее вызова я не наблюдаю отправки каких либо сообщений в сторону сервера. О закрытии соединения меня информирует флаг (es->pcb->state == CLOSE_WAIT) находящийся в функции обработки принятых сообщений, по нему, пытаюсь закрывать клиента, и потом пере запускать (где то пока подглючивает). А как быть если сервер просто завис в установленном соединении, а потом его перезапустили? Как определить его зависание на stm ? В таком случае мне нужно, определить сбой соединения и установить новое соединение, значит я должен периодически посылать запрос серверу (tcp_connect) до момента подключения?
Глчность free для lwip обеспечивается полностью несмотря на кучку версий. Так что, пока сами не разберётесь полностью с идеологией этих колбековских стеков и не поправите под вашу задачу чудес от него не ждите.
uIP чуть получше, но он платный.
dimka76
Jun 5 2013, 11:20
Цитата(Aner @ Jun 5 2013, 13:45)

uIP чуть получше, но он платный.
С каких это пор uIP платным стал ?
Это облегченная версия lwIP того же автора. Да, и кстати, теперь уже вместо uIP идут contiki, тоесть uIP как самостоятельного продукта уже нет и он идет в составе контиков.
Вы может быть с микриумовским (Micrium) операционкой путаете uC/OS-II ?
... причем тут путаю, он и есть. Понятно, что еще есть кучка uIP бесплатных, коцаных, требующая адаптационных напрягов для неплохо подготовленного чела.
uIP никогда не был платным.
для вас и RTOS бесплатна тогда тоже.
Цитата(Aner @ Jun 5 2013, 16:44)

для вас и RTOS бесплатна тогда тоже.
А для вас RTOS в мире существует только одна, надо полагать.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.