主题中讨论的其他器件:、 EK-TM4C1294XL、
我正在使用一个基于 CC3100的模块、该模块由 Tiva 微控制器控制、其中包含 CC3100SDK 1.3.0版、用于实现 http 服务器。
这使用与开箱即用示例类似的方案、以"NAME=__SL_P_UXX=0"格式发布消息。
大多数情况下、这会按预期运行、我可以继续使用令牌轮询程序代码来更改显示的值。
POST 事务间歇性地看起来不完整、并且在任何额外的 POST 或 GET 可以开始前有10s 超时。
使用 Chrome (110.0.5481.178)、Edge (110.0.1587.57)和 Firefox (110.0.1)时也是如此。
我更改了 javascript、以确保我只有一个公开事务与服务器、这没有区别。
我 在 user.h 文件中更改了源代码、将 MAX_CONCONVERT_OPTIONS 从10增加到32 、但这没有区别。
如果我使用 Wireshark 捕获事务、当 POST 按预期工作时、可以看到流的以下事件:
[SYN]来自浏览器
[SYN、ACK]
[ACK]
从浏览器发帖
HTTP 204没有来自服务器的内容
[fin、ACK]来自服务器
[ACK]
[RST、ACK]
我们看到10s "超时"时后捕获如下:
[SYN]来自浏览器
[SYN、ACK]
[ACK]
从浏览器发帖
[来自服务器的 ACK
HTTP 204没有来自服务器的内容
[fin、ACK]
[fin、ACK]来自服务器
[ACK]从服务器
[TCP Window Update][ACK] from server
[SYN]来自浏览器的下一个流索引,它来自浏览器完成帖子时触发的 JavaScript。
[TCP Retransmission][FIN, ACK] from server
[TCP Retransmission ][SYN] from browser.
这些重新传输会重复执行、直到启动10s、然后下一个 Get 开始。
它看起来像当它工作时,服务器发送一个[ FIN, ACK]当我认为它应该严格的浏览器。
浏览器随后以[RST, ACK]结束交易。
终止事务的有效方式、可能是由意外的{FIN、ACK]触发的。
很奇怪,但不会出问题。
当它不起作用时、似乎服务器正在等待[ACK]完成终止过程。
然而,这来自最流行的浏览器,我很难看到这是否真的是错误的。
但是、如果这是可接受的交换、则看起来 CC3100驱动程序中可能存在错误。
但是、我无法使用搜索找到任何问题。
谢谢。
Kevin 老师