|
FreeRTOS+LWIP,使用Netconn创建了6个TCP服务器,全部连接上后,收发数据正常;上位机调试助手依次关闭TCP连接,程序也都正常,都能再次连接使用;但是上位机调试助手连接6个tcp服务器后,不断开连接,直接使用任务管理器,结束任务,导致单片机中服务器任务卡死,但是都能ping通,在服务器任务中设断点不进去,tcp服务器还能连上。
服务器代码如下:
tcpconn232 = netconn_new( NETCONN_TCP );
netconn_bind( tcpconn232, IPADDR_ANY, Net_Info.Port[0] );
netconn_listen( tcpconn232 );
for( ;; )
{
err = netconn_accept( tcpconn232, &newconn232 );
if( err == ERR_OK )
{
server_connect[server232] = 1;
BL1616_DispStr( 0x00, (uint8_t *)"CONN-1" );
while( ( err = netconn_recv( newconn232, &recvbuf ) ) == ERR_OK )
{
do
{
netbuf_data( recvbuf, &data, &len );
comClearRxFifo( COM1 );
comSendBuf( COM1, data, len );
} while( netbuf_next( recvbuf ) >= 0 );
netbuf_delete( recvbuf );
}
while( netconn_close( newconn232 ) != ERR_OK ){
vTaskDelay( 1 );
}
server_connect[server232] = 0;
BL1616_DispStr( 0x00, (uint8_t *)"CLOSE1" );
while( netconn_delete( newconn232 ) != ERR_OK ){
vTaskDelay( 1 );
}
}
}
|
|