【发布时间】:2010-11-12 01:55:56
【问题描述】:
更新:感谢您迄今为止的帮助。我刚刚测试了从浏览器直接连接到它的程序,而不是通过 XMLHttpRequest。直接从浏览器运行完美无缺。
但是,此连接必须通过 XMLHTTPRequest 处理。根据 FireBug 的说法,它正在接收完整的响应(在这种情况下为 31 个字节)。它关闭连接,将 readyState 设置为 4。但 responseText 完全为空。
我正在创建一个接受连接并像 HTTP 服务器一样响应的 C++ 应用程序。我的目标是通过打开与此 C++ 应用程序的连接来创建一个实时聊天服务器,并在发送新消息时继续加载一个“页面”作为响应。我目前正在发回以下内容:
HTTP/1.1 200 正常\r\n
传输编码:分块\r\n
内容类型:文本/纯文本\r\n
\r\n
到目前为止,一切正常。使用 FireBug,我可以看到它正在正确接收和解释标头。但是,我不知道如何转发响应文本。我知道,在纯文本中,它会读作如下:
5
你好
8
再见
但是到目前为止,我尝试的每次迭代(使用 \r\n,没有 \r\n,将 \r\n 计为 2 个额外字节)都没有被浏览器正确读取为响应文本。有人可以帮忙制作一个合适的字符串作为响应文本发送吗?
【问题讨论】:
-
你描述的是正确的(假设
5\r\nHello\r\n8\r\nGood bye\r\n)。您可以使用telnet设置服务器端作为响应发送的原始数据。这将有助于找出问题所在。 -
感谢您推荐 telnet。我开始使用它(现在的代码是一个简单的 Echo 服务器),但停下来并尝试对其进行硬编码以避免不断输入标题。我现在已经通过直接连接测试了代码,它可以正常工作(并且一直如此)。只是 XMLHttpRequest 部分给我扔了一个曲线球。
标签: c++ http xmlhttprequest