我已经为自己做了一个简单的C++应用程序,它通过HTTP来流数据。当我在浏览器中打开服务器IP和端口时,我可以在浏览器窗口中看到流。但是,从浏览器向C++服务器发出的任何XHR请求都会在接收到标头后从客户端自动关闭。使用TELNET或PHP,甚至没有任何脚本的浏览器都能给我提供没有问题的流数据。将Ajax连接到生成虚拟流的PHP脚本也是有效的。
是什么导致了这个问题?它是否是由发送的第一个字节'\0‘引起的?抑或是由于使用的港口不是80岁而造成的?
C++服务器和PHP脚本都运行在同一台Debian机器上。JS脚本已经在多个浏览器上进行了测试,包括Opera、Mozzila和Chrome。
服务器发送以下标题:
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的帮助下,我分离了几个问题,这些问题发生在:
发布于 2012-11-12 20:34:23
您应该指定内容长度标头,指示流的确切大小(以字节为单位)。另外,出于好奇,您是否在流纯文本(如内容类型中所示)?如果是的话,没有内容长度可能是一个问题,因为\r\n\r\n在HTTP中有意义
https://stackoverflow.com/questions/13305749
复制相似问题