首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ "HTTP“服务器-分组数据传输

C++ "HTTP“服务器-分组数据传输
EN

Stack Overflow用户
提问于 2010-11-11 17:10:24
回答 3查看 2.9K关注 0票数 1

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

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

我正在创建一个C++应用程序,它接受连接并响应,就像它是HTTP一样。我的目标是通过打开与这个C++应用程序的连接来创建一个实时聊天服务器,并在发送新消息时继续加载一个“页面”来响应。我现将下列资料发还:

HTTP/1.1 200 OK\r\n

传输-编码:分组\r\n

内容-类型:文本/普通\r\n

R\n

到目前为止,一切都正常。使用FireBug,我可以看到它正确地接收和解释头文件。但是,我不知道如何转发响应文本。我知道,在纯文本中,其内容如下:

5

你好

8

再见

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

EN

回答 3

Stack Overflow用户

发布于 2010-11-11 17:17:38

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

代码语言:javascript
复制
5
Hello
8
Good bye
0

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

票数 2
EN

Stack Overflow用户

发布于 2010-11-11 17:18:11

您正在尝试实现"HTTP“或HTTP流之类的,问题是并不是所有的浏览器都能正确地支持这一点,对于火狐/opera等浏览器来说,您可以尝试mime类型的multipart/x-mixed-replace,只要您保持连接正常并向下发送,火狐就应该阅读,但这在IE中是行不通的.

票数 1
EN

Stack Overflow用户

发布于 2010-11-11 17:18:08

“每个块从它嵌入的以十六进制表示的数据的八进制数开始,后面是可选参数(块扩展)和终止的CRLF (回车和行馈)序列,然后是块数据。”

你是用魔法作为你的长度吗?块长度后的\r\n不应计算在长度中。

另外,尝试用0长度关闭页面。这将使您知道浏览器在解析之前是否只是在缓冲。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4157104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档