首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax与C++ http服务器断开连接

Ajax与C++ http服务器断开连接
EN

Stack Overflow用户
提问于 2012-11-09 09:55:03
回答 1查看 239关注 0票数 3

我已经为自己做了一个简单的C++应用程序,它通过HTTP来流数据。当我在浏览器中打开服务器IP和端口时,我可以在浏览器窗口中看到流。但是,从浏览器向C++服务器发出的任何XHR请求都会在接收到标头后从客户端自动关闭。使用TELNET或PHP,甚至没有任何脚本的浏览器都能给我提供没有问题的流数据。将Ajax连接到生成虚拟流的PHP脚本也是有效的。

是什么导致了这个问题?它是否是由发送的第一个字节'\0‘引起的?抑或是由于使用的港口不是80岁而造成的?

C++服务器和PHP脚本都运行在同一台Debian机器上。JS脚本已经在多个浏览器上进行了测试,包括Opera、Mozzila和Chrome。

服务器发送以下标题:

代码语言:javascript
复制
write(*con, "HTTP/1.1 200 OK\n",16);
write(*con, "X-Powered-By: Darker\n",21);
write(*con, "Pragma: no-cache\n",17);
write(*con, "Content-Type: text/plain; charset=\"utf-8\"\n",42);
write(*con, "Connection: keep-alive\n",23);

好的,在Wireshark和Opera DragonFly的帮助下,我分离了几个问题,这些问题发生在:

  • responseText中的“HTTPRequest”始终是"“(一个空字符串),尽管在Wireshark中,我可以很容易地看到正在正确接收的数据。
  • 在接收响应时,"readyState“始终是4,即使流尚未从服务器端结束。
EN

回答 1

Stack Overflow用户

发布于 2012-11-12 20:34:23

您应该指定内容长度标头,指示流的确切大小(以字节为单位)。另外,出于好奇,您是否在流纯文本(如内容类型中所示)?如果是的话,没有内容长度可能是一个问题,因为\r\n\r\n在HTTP中有意义

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

https://stackoverflow.com/questions/13305749

复制
相关文章

相似问题

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