我试图在运行FreeRTOS的嵌入式主板上运行一些C代码,并使用其TCP / IP堆栈将非常简单的文件发送到桌面上运行的Apache服务器。
我可以将文件从 Apache服务器拉到我的电路板就好了,所以我知道Apache服务器正在运行。
我附上了一张从我的嵌入式主板发出的HTTP POST数据包的Wireshark屏幕截图。您可以在底部看到确切消息的十六进制值。
然后我用另外20个字节的数据发送另一个TCP数据包。我已经尝试过并将这20个字节的数据附加到标头所在的同一个数据包中。在这两种情况下,我都会从桌面返回几个数据包,概述错误。它告诉我在一个网站上发现404错误意味着:
HTTP / 1.1 404 Not Found
命令的POST路径不正确。
Apache服务器上的index.html文件位于我的/ var / www / html /目录中。我创建了一个传入的子目录,并为每个人提供了完整的权限。
drwxrwxrwx 2 root root 4096 Nov 19 10:07传入/ -rw-r - r-- 1 root root 174 Nov 11 22:20 index.html
所以,我相信任何人都应该能够发布到那个传入的地址。当我在GET命令中请求/index.html时,我相信请求:
POST /incoming/records.txt
应该是正确的道路。
有人能够就这可能出错的原因提出建议吗?
我猜可能是:
我怀疑Apache服务器重新发送最后一个数据包的原因是因为我发送了404错误时没有发回ACK。我将尝试并行排序。
WFIW我在堆栈中使用Berkeley套接字来发送和接收信息。
非常感谢!