硬汉嵌入式论坛

 找回密码
 立即注册
查看: 777|回复: 4
收起左侧

[LwIP] TCP客户端异常关闭 导致tcp服务器任务卡死

[复制链接]

18

主题

42

回帖

96

积分

初级会员

积分
96
发表于 2022-7-15 08:42:29 | 显示全部楼层 |阅读模式
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 );
                        }
                }
    }

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2022-7-15 10:20:53 | 显示全部楼层
帮你用TCPnet测试了下,任务管理器关闭的话,tcpnet会提示断开连接消息,

image.png

重新打开助手连接没问题,供参考。

image.png
回复

使用道具 举报

18

主题

42

回帖

96

积分

初级会员

积分
96
 楼主| 发表于 2022-7-15 14:26:21 | 显示全部楼层
单个TCP连接,我这里也没问题,但是多个tcp一起连着,然后任务管理器关闭,会出现tcp服务器任务卡死,别的任务还是能运行的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2022-7-15 15:27:14 | 显示全部楼层
Zachary唷 发表于 2022-7-15 14:26
单个TCP连接,我这里也没问题,但是多个tcp一起连着,然后任务管理器关闭,会出现tcp服务器任务卡死,别的 ...

多客户端的这个,有个现成的例子,帮你测试了下,没问题,随意测试。

ThreadX NetXDUO作为服务器接收100个客户端测试成功,分享工程和测试效果(2022-01-16)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=110613

设备管理器帮你测试了,没问题。

image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 15:03 , Processed in 0.178102 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表