gpt4 book ai didi

多个数据包上的 HTTP 数据 block ?

转载 作者:可可西里 更新时间:2023-11-01 15:13:18 32 4
gpt4 key购买 nike

HTTP 服务器通过多个数据包发送数据的正确方法是什么?

比如我要传输一个文件,我发送的第一个数据包是:

HTTP/1.1 200 OK
Content-type: application/force-download
Content-Type: application/download
Content-Type: application/octet-stream
Content-Description: File Transfer
Content-disposition: attachment; filename=test.dat
Content-Transfer-Encoding: chunked

400
<first 1024 bytes here>

400
<next 1024 bytes here>

400
<next 1024 bytes here>

现在我需要制作一个新数据包,如果我只发送:

400
<next 1024 bytes here>

所有客户端都关闭了与我的连接,文件被缩短了。

我应该在第二个数据包中放入哪些 header 以继续处理数据流?

最佳答案

我缺乏代表似乎不允许我对问题发表评论,只是回答它,所以我假设类似“你正在尝试在嵌入式设备的网络服务器上实现 HTTP 1.1有一个面向数据包的网络堆栈而不是面向流的网络堆栈”是真的,否则你就不会谈论数据包。 (如果您在谈论 block ,请参阅其他答案。)

考虑到——尽可能使用套接字;您不必考虑数据包。您的网络堆栈某处可能有一个包装器。如果没有,写一个不会严重影响你表现的。

如果您不能,无论出于何种原因——您可能会超出第一个数据包的大小。您的 MTU 可能类似于 1500 或 1492(或更小),并且您在“第一个数据包”中列出了 + 5 + 1024 + 5 + 1024 + 5 + 1024 字节。您的网络堆栈可能非常糟糕,以至于它没有给您错误代码,或者您的代码可能没有检查它们——或者它可能正在做其他同样无用的事情。

关于多个数据包上的 HTTP 数据 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785136/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com