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.

[参考译文] CC3220MODA:使用 TCP 套接字通信确认数据的传输方式。

Guru**** 2394305 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/665341/cc3220moda-confirm-the-way-to-reach-the-data-with-using-tcp-socket-communication

器件型号:CC3220MODA

尊敬的 TI 专家:

请允许我确认以下问题。
[问题]
"sl_send"函数是否确认另一侧的 ACK?

我想知道如何确认"已到达另一方"。 如果有其他方法、请告诉我。
此致。
Kaka

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

    [问题]"sl_send"函数是否确认另一侧的 ACK?
    不可以、BSD 套接字不能保证这一点。

    [问题]我想知道如何确认"已到达另一方"。
    您需要在 TCP /sl_Send ()/或 UDP /sl_SendTo()/上创建自己的确认机制。

    API sl_Send()将数据发送到 NWP 内的 TCP 堆栈,并在完成此操作后返回。 这意味着 sl_Send()直到另一侧接收到数据才被阻止。

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

    感谢您的评论。
    顺便说一下、您是否会告诉我 sl_send 返回值将为负(错误)的一些情况?

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

    您好、Kaka、

    error.h 文件中描述了套接字错误代码。 以下代码适用于套接字错误:

    #define SL_ERROR_BSD_SOC_ERROR (-1L)/*故障*/
    #define SL_ERROR_BSD_INEXE (-8L)/*正在执行的套接字命令*/
    #define SL_ERROR_BSD_EBADF (-9L)/*错误文件号*/
    等 

    假设您已经打开了 TCP 套接字,并且正在通过 sl_Send()发送数据。 在现实生活中、您可能会遇到以下错误代码:

    SL_ERROR_BSD_EAGAIN (=-11)-如果使用非阻塞套接字、则返回代码、当返回代码时、您需要等待片刻(假设为50ms)并再次调用 SL_Send () (如果 WiFi 信号较差、如果您希望发送的数据大于此 NWP 能够传输的数据、则可能会返回此代码)

    其他负错误(可能为 SL_ERROR_BSD_SOC_ERROR)-在套接字关闭(远程侧、保持活动等)的情况下返回。 此错误的良好反应是调用 sl_close()并再次打开 socket

    正确。 异步套接字事件 SimpleLinkSockEventHandler()也向您通报了有关 TX 错误的信息。 在本例中、您将看到 SL_SOCKET_TX_FAILED_EVENT。  但是、从我的角度来看、这个事件不必要地使套接字代码复杂化。

    1月

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

    感谢您的详细解释。 请允许我确认我的理解、以防万一。
    您显示的错误将在 sl_close 调用时得到。 对吧?
    或者、SL_SEND 的返回值是否是 TPC 失败时的错误?

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

    error.h 中的错误代码 SL_ERROR_BSD_用于套接字 API 函数。

    错误 SL_ERROR_BSD_EAGAIN 与非阻塞套接字和 API SL_Send ()和 SL_Recv ()相关。 错误 sl_error_BSD_SOC_error 也可以从 send()和 recv() API 返回。

    事件 sl_socket_TX_FAILED_EVENT... 与 sl_Send() API 相关。 API sl_Send()将数据包存储到 NWP 中的缓冲区中。 如果 NWP 无法将此缓冲器发送到触发了另一侧 SL_SOCKET_TX_FAILED_EVENT 事件的另一侧。 此事件的原因可能包括:从另一侧关闭 TCP 连接、WLAN 层丢失连接等

    1月