// First, we should enable this macro in lwipopts.h #define LWIP_TCP_KEEPALIVE 1 // The following code is implemented after tcp_new() or in tcp_connected call back ... xxx_connected(..., struct tcp_pcb* tpcb, ...){ tpcb->so_options |= SOF_KEEPALIVE; tpcb->keep_idle = 5000; // ms tpcb->keep_intvl = 5000; // ms tpcb->keep_cnt = 2; // report error after 2 KA without response}