用硬石開發板例程改個TCP通信程序,發現接收數據很慢,間隔達到250ms,很大上位機下發的命令都無法快速響應:
#define TCP_TMR_INTERVAL 1//250 /* The TCP timer interval in milliseconds. */
原來是250,改成1,這樣1ms接收回調一次
LWIP server 主動上傳數據tcp_write ,要500ms才成功發送一次,TCP_TMR_INTERVAL調小就可以了
但是最小也有60ms,最後在網上找到了,是LWIP內部的Nagle算法會把一些小幀數據合併成一個大的數據包再往外發送,
解決:在回調函數tcp_connected_callback()中,加入tcp_nagle_disable(connected_pcb);