gpt4 book ai didi

C++ "HTTP"服务器 - 分块数据传输

转载 作者:可可西里 更新时间:2023-11-01 17:15:19 25 4
gpt4 key购买 nike

更新:感谢您到目前为止的帮助。我刚刚测试了从浏览器直接连接到它的程序,而不是通过 XMLHttpRequest。直接从浏览器运行是完美的。

但是,此连接必须通过 XMLHTTPRequest 处理。根据 FireBug 的说法,它正在接收完整的响应(在本例中为 31 个字节)。它关闭连接,将 readyState 设置为 4。但是 responseText 完全是空的。


我正在创建一个 C++ 应用程序,它接受连接并像 HTTP 服务器一样进行响应。我的目标是创建一个实时聊天服务器,方法是打开与此 C++ 应用程序的连接,并响应一个“页面”,该页面在发送新消息时继续加载。我目前正在发回以下内容:

HTTP/1.1 200 正常\r\n
传输编码:分块\r\n
内容类型:文本/纯文本\r\n
\r\n

到目前为止,一切正常。使用 FireBug,我可以看到它正在正确接收和解释 header 。但是,我不知道如何转发回复文本。我知道在纯文本中,它会被读作如下:

5
你好
8
再见

但到目前为止,我尝试过的每次迭代(使用\r\n,不使用\r\n,将\r\n 计为 2 个额外字节)都没有被浏览器正确读取为响应文本。有人可以帮助制作一个合适的字符串作为响应文本发送吗?

最佳答案

您应该以零长度 block 结束传输:

5
Hello
8
Good bye
0

否则浏览器不知道你已经完成了。

关于C++ "HTTP"服务器 - 分块数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157104/

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