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.

[参考译文] RTOS/DK-TM4C129X:打开 TCP 套接字禁用 HTTP 服务器

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/598021/rtos-dk-tm4c129x-open-tcp-socket-disables-http-server

器件型号:DK-TM4C129X

工具/软件:TI-RTOS

我刚刚在两个套接字上实现了一个 TCP 服务器、它与 TI 提供的 HTTP 服务器同时运行、我已经运行了一段时间了。  感谢您在这方面所做的出色工作。  我在连接我的 CGI 代码并按我的意愿工作时没有遇到任何问题。

但是,每当我的新服务器调用 Accept()并保持数据套接字打开时,HTTP 服务器都会以-1的状态响应所有 CGI GET 请求,并且没有响应主体。  当我关闭数据套接字时、HTTP 会再次正确运行我的 CGI 代码、我会看到预期的响应。  我还注意到、只要运行 TCP 服务器、无论 TCP 服务器是否打开了数据套接字、HTTP 服务器在提供 index.html 中引用的图形图像.png 文件方面都不可靠。  我在端口50000和50001上侦听。

我已将 BIOS.heapSize 从22528 (在 HTTP 服务器 PowerPoint 中推荐)增加到60000、只是为了慷慨解囊任何内存不足、并且行为不变。  这让我得出结论、这不是内存问题、但我正在与 HTTP 服务器竞争其他资源。  Ip.defaultSockMaxConn 为8、这似乎足以支持 HTTP 和 TCP 服务器。  可能对文件描述符的最大数量存在限制、但我尚未找到。  否则、我不确定资源可能是什么。

您对我缺少的资源有什么看法吗?

谢谢、

Leo Bredehoft

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    服务器在 httpclie.c 的第175行 mmAlloc()失败 这必须来自堆以外的一些存储器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MmAlloc()是"固定存储器桶"NDK 内存分配器的一部分。 如何给它更多的内存?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    设置 Global. memRawPageCount = 32会使问题消失。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您发帖、即使您解决了自己的问题。 其他人现在可以从您所学的知识中受益。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    供参考...以下是 NDK 使用的存储器的详细说明(以防您未看到它): processors.wiki.ti.com/.../TI-RTOS_Networking_Stack_Memory_Usage

    Todd