Продолжая вникать в LwIP столкнулся с такой непоняткой для себя, как правильно организовать TCP клиента?
Посмотрел пример TCP сервера на базе STM32F217 от ST. Если правильно понял, то клиент должен отличаться лишь отсутсвием команд listen и accept.
Набросал такой алгоритм
Код
connn = netconn_new(NETCONN_TCP);
netconn_connect(connn, &addr, 5001);
// создание и заполнение буфера...
...
while(1)
{
netconn_write(connn,buf1,LENGTH,NETCONN_NOCOPY);
buf_rev = netconn_recv(connn);
if (buf_rev != NULL) {
// сервер отвечает
}
}
netconn_connect(connn, &addr, 5001);
// создание и заполнение буфера...
...
while(1)
{
netconn_write(connn,buf1,LENGTH,NETCONN_NOCOPY);
buf_rev = netconn_recv(connn);
if (buf_rev != NULL) {
// сервер отвечает
}
}
коннект благополучно происходит, данные отправляются..но netconn_recv(connn); бесконечно ожидает приема данных от сервера.
Хотя сниффером наблюдаю, как сервер шлет ACK пакеты, почему же их не перехватывает клиент?
Я либо не умею готовить LwIP, либо не до конца понимаю принцип реализации клиента. Пожалуйста, подскажите как проверить факт получения сервером посылки?