Question
How to stop listening port on tcp communication properly with LWIP Stack ?
Hello, I have a mcu that works as a tcp server. I listen 2 port for connection, if i want to stop listening what must i do ?
I use this function to initialise port
void TCPServerInitialise( U16 usPort )
{
struct tcp_pcb *pstTcp_pcb;
/* create new tcp pcb */
pstTcp_pcb = tcp_new (); // allocate new tcp_pcb
if ( pstTcp_pcb != NULL )
{
err_t err;
/* bind pcb to port */
err = tcp_bind ( pstTcp_pcb, IP_ADDR_ANY, usPort );
CONSOLE_PRINT_1( "Tcp_Bind Err : %d", err );
if ( err == ERR_OK )
{
/* start tcp listening for pcb */
pstTcp_pcb = tcp_listen( pstTcp_pcb );
if ( usPort == stPRM.stTransParams.st485Cfg.usETHPort )
{
mLedEth485StatusSet()
stTaskETH.pst_tcp_pcb_485 = pstTcp_pcb;
}
else if ( usPort == stPRM.stTransParams.st232Cfg.usETHPort )
{
mLedEth232StatusSet()
stTaskETH.pst_tcp_pcb_232 = pstTcp_pcb;
}
/* initialize LwIP tcp_accept callback function */
tcp_accept ( pstTcp_pcb, TCPServerAcceptCallback );
CONSOLE_PRINT_1( "Port %d is up !", usPort );
}
else
{
EventInsert( eEventTcpInitFail );
/* deallocate the pcb */
memp_free ( MEMP_TCP_PCB, pstTcp_pcb );
}
}
}I tried tcp_close ( stTaskETH.pst_tcp_pcb_232 ); and tcp_close ( stTaskETH.pst_tcp_pcb_232 ); but still i have issues tcp_close didnt clear variables.
