Я не могу получить ответ на несколько HTTP-запросов, когда я пытаюсь вставить в очередь данные для отправки на сервер.Не удается получить несколько ответов на HTTP-запросы с подключением lwIP Raw TCP
Мы можем установить соединение с сервером и немедленно выдать HTTP-запрос внутри функции connected_callback() (называемой сразу после установления соединения с сервером) с помощью функции tcp_write(). Однако, если я пытаюсь создать два HTTP resquests или больше, используя следующий синтаксис:
err_t connected_callback(void *arg, struct tcp_pcb *tpcb, err_t err) {
xil_printf("Connected to JUPITER server\n\r");
LWIP_UNUSED_ARG(arg);
/* set callback values & functions */
tcp_sent(tpcb, sent_callback);
tcp_recv(tpcb, recv_callback);
if (err == ERR_OK) {
char* request = "GET /circuits.json HTTP/1.1\r\n"
"Host: jupiter.info.polymtl.ca\r\n\r\n";
(void) tcp_write(tpcb, request, 100, 1);
request = "GET /livrable1/simulation.dee HTTP/1.1\r\n"
"Host: jupiter.info.polymtl.ca\r\n\r\n";
(void) tcp_write(tpcb, request, 100, 1);
tcp_output(tpcb);
xil_printf("tcp_write \n");
} else {
xil_printf("Unable to connect to server");
}
return err;}
мне удается отправить все данные на сервер, но я никогда не получить какие-либо данные для второго запроса HTTP. Мне удается распечатать полезную нагрузку для первого запроса (файл JSON), но мне никогда не удается получить что-либо для файла .dee. Существуют ли какие-либо конкретные инструкции по вводу запросов HTTP вместе с lwIP или я что-то упускаю?
Если вам нужен еще один код для точного анализа моей проблемы, не стесняйтесь говорить об этом.
Спасибо!
Ваша основная проблема, вероятно, в том, как вы получаете ответ. Но этот код здесь не показан. Кроме того, сервер может закрыть после обработки первого запроса. Если вы используете конвейерную обработку HTTP, вы должны знать об этом и повторить пропущенный запрос. –