This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LAUNCHCC3220MODASF:在 cc3220上实现客户端套接字连接

Guru**** 2586755 points
Other Parts Discussed in Thread: CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/727381/launchcc3220modasf-implementing-a-client-socket-connection-from-on-a-cc3220

器件型号:LAUNCHCC3220MODASF
Thread 中讨论的其他器件:CC3200

实现客户端套接字连接

我找到了一个示例,但我认为我没有正确地将服务器 IP (网关)地址(C0A83101或192.168.49.1)放在 sAddr 结构中。

processors.wiki.ti.com/.../CC32xx_TCP_Socket_Application_0.5.2

返回的错误是-111、连接被拒绝、如下面我的控制台所示

[NetApp 事件] IP 设置为:IPV=192.168.49.113,Gateway=192.168.49.1
用户:
[p2pstart]:P2P 已连接,正在启动套接字连接

[p2pstart]:客户端连接 sl_Socket ()

[p2pstart]:客户端连接 sl_Connect()

[p2pstart]:C0A83101
[p2pstart]:sl_Connect ()[line:1734,error:-111] Socket error,please refer "socket errors codes" section in errors.h

下面是我的客户端套接字连接实现

   // 使用标准参数打开套接字
   UART_PRINT ("\n\n\r\n[p2pstart]:客户端连接 sl_Socket ()\n\n");
   newsock = sl_Socket (sl_AF_iNet、sl_sock_stream、0);
   if (newsock < 0)
   {
   //错误
   UART_PRINT ("[p2pstart]:sl_Socket ()[line:%d、error:%d]%s\n"_、_line__、status、sl_socket_error);
   返回-1;
   }

   //连接到服务器 IP 和端口号
   UART_PRINT ("\n\n\r\n[p2pstart]:客户端连接 sl_Connect ()\n\r");
   UART_PRINT ("\n\n\r\n[p2pstart]:%X \n\r"、sAddr.in4.sin_addr.s_addr);
   status = sl_Connect (newsock、CSA、addrSize);
   if (status < 0)
   {
   //错误
   UART_PRINT ("[p2pstart]:sl_Connect ()[line:%d、error:%d]%s\n\r\n、__line__、status、sl_socket_error);
   sl_close (newsock);
   返回-1;
   }

这是我尝试将 IP 地址写入 CSA 指针指向的 sAddr 结构

/*填写 TCP 服务器套接字地址*/
       sAddr.in4.sin_family = SL_AF_iNet;

       //设置服务器的端口:我们将在此端口上接收连接请求*/
       sAddr.in4.sin_port = sl_Htons (unsigned short) portNumber);     // 5001
//       sAddr.in4.sin_addr.s_addr = sl_INADDR_ANY;
       sAddr.in4.sin_addr.s_addr = APP_CB.CON_CB.GatewayIP;     //C0A83101或192.168.49.1

       SA =(SlSockAddr_t*)&sAddr.in4;
       CSA =(SlSockAddr_t*) sAddr.in4;
       addrSize = sizeof (SlSockAddrIn_t);

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您的连接代码不正确(sl_Connect 中的 addr 参数错误)。 请参阅 www.ti.com/.../swru455上的5.5.1.1

    如果我有建议的话。 如果您使用的是 CC3220器件、这不是遵循上一代(CC3200)的 Wiki 页面的最佳方法、尤其是预发布 SDK 版本。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在学习 swru455、但我所做的与 swru455手册实施在第84页没有区别。

    Addr.sin family= SL_AF_iNet;
    Addr.sin 端口= sl_Htons (5001);
    addr.sin addr.s_addr= sl_Htonl (sl_IPV4_VAL (192、168、1、31));
    SD = sl_Socket (sl_AF_iNet、sl_sock_stream、0);
    if (0 > SD)
    //错误
    status= sl_Connect (SD、(SlSockAddr_t*)&Addr、sizeof (SlSockAddrIn_t));
    if (状态)
    //错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    好的、我的错。 我真的很困惑你是如何声明 sAddr 的。

    是否确定您的连接在另一侧192.168.49.1没有被阻止,并且服务器正在那里运行? 您可能可以通过 Wireshark 检查。 错误代码-111主要显示在另一侧连接被阻止时。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gary、请参阅 CC3220 SDK 中的网络终端示例

    sAddr.in4.sin_addr.s_addr = sl_Htonl (unsigned int) ipAddress.IPv4);

    别忘了 htonl

    亚伦