硬汉嵌入式论坛

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

[ThreadX全家桶] netxduo连接异常

[复制链接]

10

主题

29

回帖

59

积分

初级会员

积分
59
发表于 2022-11-4 19:53:41 | 显示全部楼层 |阅读模式
环境 :1,硬件STM32H743  
2,软件threadx + netxduo,TCP模式 bsd方式做服务端,listen最大连接数4。使用网络助手连接,疯狂点“连接”/“断开”按钮,没多长实际,就连接不上了,最开始accept返回-1,查了一下,ned_bsd.c文件accept函数2810行条件满足了代码如下

/* Validate the secondary server socket.  */
    if ((bsd_socket_ptr -> nx_bsd_socket_union_id).nx_bsd_socket_secondary_socket_id >= NX_BSD_MAX_SOCKETS)
    {

        /* This secondary socket is not available yet.  This could happen if the
           previous accept call fails to allocate a new secondary socket. */
        ret = nx_bsd_tcp_create_listen_socket(sockID, 0);

        if(ret < 0)
        {

            /* Failed to allocate a secondary socket, release the protection mutex.  */
            tx_mutex_put(nx_bsd_protection_ptr);

            /* Errno is already set inside nx_bsd_tcp_create_listen_socket.  Therefore
               there is no need to set errno here. */

            /* Return an error. */
            NX_BSD_ERROR(NX_SOC_ERROR, __LINE__);
            return(NX_SOC_ERROR);
        }
    }



然后tcp server线程没有线程执行计数(意味推出了),在while打断点,不会被执行到。
有没有人遇到过类似情况!!

如果单片机里面创建两个tcp server服务,挂的更快。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2022-11-4 20:36:50 | 显示全部楼层
BSD方式我一直还没有测试,我这里的是原始socket方式的,你试试你那边正常不。

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

使用道具 举报

10

主题

29

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-11-5 20:49:06 | 显示全部楼层
好的,周一试试看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 01:51 , Processed in 0.177122 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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