Я взял проект LwIP_HTTP_Server_Netconn_RTOS (STM32CubeMX) и изменил код TCP-сервера, чтобы он был показан здесь. Но на стороне клиента я получаю такой результат:
S: SET / Num: 1 Num: 6 Num: 6 Num: 6 Num: 6 Num: 7 Num: 7
Что я делаю неправильно?
void http_server_serve(struct netconn *conn)
{
struct netbuf *inbuf;
char* buf;
u16_t buflen;
size_t len;
unsigned int call_times = 0;
#define SIZE_ARRAY 21
char data[SIZE_ARRAY]={0};
while(netconn_recv(conn, &inbuf) == ERR_OK)
{
netbuf_data(inbuf, (void**)&buf, &buflen);
if ((buflen >=5) && (strncmp(buf, "SET /", 5) == 0))
{
for(int i=0;i<7;i++)
{
if(conn->state == NETCONN_NONE)
{
sprintf(data, " Num: %d\n", ++call_times);
len = strlen(data);
printf(" Num: %d\n", call_times);
netconn_write(conn, (const unsigned char*)(data), (size_t)len, NETCONN_NOFLAG);
}
}
netbuf_delete(inbuf);
}
}
netconn_close(conn);
netbuf_delete(inbuf);
}