主题中讨论的其他器件:CC3120
如果我向 CC3120发送了许多 HTTP 请求、但没有等待响应、则行为是不可预测的。 有些响应正常、有些响应延迟几秒钟、有些响应超时。 如果我等待每个请求的响应、一切都正常且速度快得多。 您能否提供一些见解、了解为什么在 CC3120请求过载时会发生不可预测的行为? 如果这种情况意外发生、我希望能够防止我们的系统发生故障、因为我注意到资源负载在已生成的堆栈和堆上上升。
Gary
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.
如果我向 CC3120发送了许多 HTTP 请求、但没有等待响应、则行为是不可预测的。 有些响应正常、有些响应延迟几秒钟、有些响应超时。 如果我等待每个请求的响应、一切都正常且速度快得多。 您能否提供一些见解、了解为什么在 CC3120请求过载时会发生不可预测的行为? 如果这种情况意外发生、我希望能够防止我们的系统发生故障、因为我注意到资源负载在已生成的堆栈和堆上上升。
Gary
CC3120具有有限的资源(TCP 缓冲区)、您应根据可用资源优化工作。
您是否正在使用 HttpClient 库?
请提供有关您使用 API 的方式的信息。
在提出请求后立即阅读响应肯定会简化资源管理。
您是否更新了套接字 RCVBUF (使用 SL_SockSetOpt)?
您是否正在向同一服务器(通过同一套接字和连接)发送多个请求?
还是通过不同的套接字发送每个请求?
BR、
Kobi
我们使用 HttpClient 库进行云通信、使用内部 HTTP 服务器进行移动应用通信。 它是使用 SimpleLinkNetAppRequestEventHandler 实现的移动应用程序 HTTP 服务器请求、如果移动应用程序在发送另一个请求之前未等待其发送的 HTTP 请求的响应、则该请求将无法预测。 在这种情况下、我们依赖于内部 HTTP 服务器、因此我们不会执行任何与套接字相关的操作。 与 HTTP 服务器的连接可以使用 AP 模式直接连接、也可以通过 STA 模式下的路由器间接连接。 从这种意义上讲、移动应用程序有一个连接、但移动应用程序可能会发送多个请求、而无需等待响应。 在这种情况下、是否有办法确保 CC3120在请求溢出时不会产生堆栈溢出?
您好!
我希望执行的瓶颈将是 NWP 中内部 HTTP 服务器的行为(由于内存资源不足、TCP 连接可能会被阻止、直到应用处理请求时释放缓冲区)。 我看不到内存损坏的明显原因、但我想这不是该接口的典型用例、因此您可能会发现新问题。
除非确实有必要、否则我将坚持请求响应方法。
您可以考虑的另一个选项是使用在标准 SL (TCP)套接字之上工作的 SDK HTTPServer 库。 由于应用端可用的 RAM 越多、这应该支持更高的带宽。
您是否遇到了堆栈溢出或堆内存问题? 如果是、请提供详细信息。
通过使用 CCS 和 TIRTOS、我们提供了几种有助于分析运行时存储器消耗(https://processors.wiki.ti.com/index.php/Runtime_Object_View_(ROV)的工具、但您有责任确保为您的特定用例分配足够的存储器。
BR、
Kobi