TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3200SDK: cc3200作为创建多个套接字,连接多个服务器,有异常

Part Number:CC3200SDKOther Parts Discussed in Thread:CC3200

cc3200作为创建多个套接字,连接多个服务器时,有异常

Yolande Wang:

您好,

CC3200可以同时支持 8 sockets,这意味着可以同时创建和连接最多 8 个 TCP 客户端。

常见的方法是 TCP 客户端使用单独的线程。其他选项可以是使用 sl_Select() API 的单线程。

您的异常情况具体指的是什么?

,

su feng feng su:

感谢您的回复,下面是我建立两个TCP的连接,报错都ASSERT_ON_ERROR(CONNECT_ERROR);

/*tcp0*/
    //filling the TCP server socket address
    sAddr[0].sin_family = SL_AF_INET;
    sAddr[0].sin_port = sl_Htons((unsigned short)usPort);
    sAddr[0].sin_addr.s_addr = sl_Htonl((unsigned int)g_ulDestinationIp);

    iAddrSize[0] = sizeof(SlSockAddrIn_t);

    // creating a TCP socket
    iSockID[0] = sl_Socket(SL_AF_INET,SL_SOCK_STREAM, 0);
    if( iSockID[0] < 0 )
    {
        ASSERT_ON_ERROR(SOCKET_CREATE_ERROR);
    }

   
    // connecting to TCP server
    iStatus[0] = sl_Connect(iSockID[0], ( SlSockAddr_t *)&sAddr[0], iAddrSize[0]);
    if( iStatus[0] < 0 )
    {
        // error
        sl_Close(iSockID[0]);      
        ASSERT_ON_ERROR(CONNECT_ERROR);
    }
    /*tcp1*/
    //filling the TCP server socket address
    sAddr[1].sin_family = SL_AF_INET;
    sAddr[1].sin_port = sl_Htons((unsigned short)usPort);
    sAddr[1].sin_addr.s_addr = sl_Htonl((unsigned int)IP_ADDR2);

    iAddrSize[1] = sizeof(SlSockAddrIn_t);

    // creating a TCP socket
    iSockID[1] = sl_Socket(SL_AF_INET,SL_SOCK_STREAM, 0);
    if( iSockID[1] < 0 )
    {
        ASSERT_ON_ERROR(SOCKET_CREATE_ERROR);
    }

   
    // connecting to TCP server
    iStatus[1] = sl_Connect(iSockID[1], ( SlSockAddr_t *)&sAddr[1], iAddrSize[1]);
    if( iStatus[1] < 0 )
    {
        // error
        sl_Close(iSockID[1]);      
        ASSERT_ON_ERROR(CONNECT_ERROR);
    }

,

su feng feng su:

 也就是在单线程情况下,一般使用sl_Select() API 建立多个TCP客户端吧,我在serial_wifi.c中找到了参考代码,感谢您的指点

,

su feng feng su:

有sl_Select建立多个tcp客户端的参考用例吗?

,

Yolande Wang:

su feng feng su 说:有sl_Select建立多个tcp客户端的参考用例吗?

CC3200 设备支持类似 BSD 的套接字。在互联网(以及 e2e 论坛)上,您可以找到许多如何为多个同时连接的客户端创建 TCP 服务器的示例。

参考一下这个链接:https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_WIFI_2419780

,

Yolande Wang:

su feng feng su 说:下面是我建立两个TCP的连接,报错都ASSERT_ON_ERROR(CONNECT_ERROR);

根据您提供的代码,出现的原因和建议有:

1.TCP 服务器未响应、网络问题或连接参数设置不正确导致。

2.宏 ASSERT_ON_ERROR 的触发条件不仅仅是连接错误,您可以了解一下具体的触发条件

3.连接错误时,打印出具体的错误码或错误信息

赞(0)
未经允许不得转载:TI中文支持网 » CC3200SDK: cc3200作为创建多个套接字,连接多个服务器,有异常
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1