ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
959991 Топик полностью
Apтём (21.11.2019 13:42, просмотров: 161) ответил Ralex на Как очень поверхностное предположение, _начало_ отправки эха завязано не на окончание приема, а на начало приема последнего пакета, поэтому данные ещё недоприняты, а вы уже этот буфер отправляете...
Начало отправки никак не привязано к окончанию приёма (а почему оно должно быть привязано?). Если я пошлю файл 1 ГБ, куда я его сохраню? Вообще приём я не сам писал - взял из их примера: if (err == ERR_OK) { /* Tell connection to go into listening mode. */ err=netconn_listen(conn); while (1) { /* Grab new connection. */ err = netconn_accept(conn, &newconn); /*printf("accepted new connection %p\n", newconn);*/ /* Process the new connection. */ if (err == ERR_OK) { struct netbuf *buf; void *data; u16_t len; while ((err = netconn_recv(newconn, &buf)) == ERR_OK) { /*printf("Recved\n");*/ do { netbuf_data(buf, &data, &len); byte_counter+=len; uint8_t *d=(uint8_t *)data; for (int i=0; i<len; i++) { byte_sum+=d[i]; crc = (crc >> 8) ^ Crc32Table[(crc ^ d[i]) & 0xFF]; } //err = netconn_write(newconn, data, len, NETCONN_COPY); } while (netbuf_next(buf) >= 0); netbuf_delete(buf); } /*printf("Got EOF, looping\n");*/ /* Close connection and discard connection identifier. */ netconn_close(newconn); netconn_delete(newconn); } } } Добавил только подсчёт crc.