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.

[参考译文] CCS/CC3220:TCP/IP 数据 rcv 正在等待

Guru**** 2577385 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/745833/ccs-cc3220-tcp-ip-data-rcv-waiting

器件型号:CC3220

工具/软件:Code Composer Studio

我有正常工作代码:

开机、从设备向服务器发送数据(2个 TCP 数据包)、从服务器接收数据(2个 TCP 数据包)、休眠。 tcp_recv_data 调用2次

int32_t tcp_recv_data (void)
{
返回 tcp_bsd_client (PowerMeasure_AppData.sockID、0、false);
}

int32_t tcp_bsd_client (int16_t sockId、uint16_t lenight、uint8_t tx)
{

int32_t status =-1;


IF (TX)
{
状态= sl_Send (sockId、PowerMeasure_CB.frameData、lenight、0);
如果(状态<= 0)
{
ASSERT_ON_ERROR (STATUS);
返回状态;
}
其他
UART_PRINT ("发送(%d 字节)成功\n\r\n、长度);
}
其他
{
状态= sl_Recv (sockId、PowerMeasure_CB.frameData、MAX_FRAME_LENGTH、0);
如果(状态< 0)
{
ASSERT_ON_ERROR (STATUS);
返回状态;
}
如果(状态= 0)
UART_PRINT (" TCP 服务器已关闭连接)\n\n"\};
如果(状态> 0)则为其他
UART_PRINT ("已成功接收(%d 字节)\n\n"、状态);
}

PowerMeasure_AppData.sockID = sockId;
返回状态;
} 

但有时服务器可以发送更多的2个数据包

如何使用 SL API 程序写入等待2-3秒的数据?

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

    您可以为 sl_receve 创建超时、以便在返回前等待2-3秒。

    另一种方法是创建计时器并使用非阻塞式套接字、在3秒后停止接收。

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

    您是否仍然遇到此问题?

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

    仍然有

    调查

    等待2-3天

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

    我要关闭此主题。 如果仍有问题、请打开新主题。

    此致、
    VR