Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 29.03.2019, 08:17   #1
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 43
Сообщений: 123
Вес репутации: 116/24
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию LWIP Netconn API TCP сервер. Прием данных

Уважаемые коллеги, доброго времени суток!
Правильно ли я понимаю, что в этой конструкции
Код:
					while (netconn_recv(newconn, &buf) == ERR_OK) {

						do {
							netbuf_data(buf, &data, &len);
							printf ("%u Bytes received, netbuf_next() = %d\r\n", len, netbuf_next(buf));

						} while (netbuf_next(buf) >= 0);
						printf ("netbuf_next() = %d\r\n", netbuf_next(buf));
						copiedBytes=netbuf_copy(buf, (uint8_t*)&train,sizeof(train));
						printf("%u bytes are copied to structure\r\n", copiedBytes);
						netbuf_delete(buf);
					}
В случае, если размер входящих данных будет больше, чем TCP_MSS (Maximum segment size), который в данном случае 536 байт, то каждый последующий сегмент данных будет перезаписывать предыдущий в в буфере buf? То есть, функция netbuf_next() всегда будет возвращать -1? На практике у меня так и происходит. Вот результат выполнения этого кода при отправке 1024 байт.

536 Bytes received, netbuf_next() = -1
netbuf_next() = -1
536 bytes are copied to structure
488 Bytes received, netbuf_next() = -1
netbuf_next() = -1
488 bytes are copied to structure


Тогда непонятно, зачем организован цикл do-while? При каких условиях в структуре netbuf указатель next будет ненулевым?

При копировании данных функцией netbuf_copy нужно самому двигать указатель своей переменной при приеме каждого сегмента? Или я что-то не понимаю?

Заранее благодарю за ответы.
IvanPletnev вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
lwIP - tcp win size == 65535 у принятых в windows 10 пакетов. siarzhuk Cетевые протоколы и технологии 14 12.01.2018 19:54
Конфигурация LwIP стека Pasha_Bi Cетевые протоколы и технологии 8 13.11.2017 09:55
LwIP, Netconn API, TCP/IP соединение. Как узнать порт подключившегося клиента? Pasha_Bi Cетевые протоколы и технологии 3 10.11.2017 14:16
LwIP, Netconn API, TCP/IP, клиент. Периодически не возвращается из функции netconn_write(). Pasha_Bi Cетевые протоколы и технологии 4 10.11.2017 13:59
Прием данных от сверхрегенеративного приемника ctef Общетехнические вопросы 17 29.10.2015 21:37


Часовой пояс GMT +3, время: 00:45.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot