用C++测试对接收的HTTP请求直接回以下内容:
HTTP/1.1 200 OK
Content-Length: 346
Content-Type: text/html
X-Powered-By: HUM_PROXY
Date: Sat, 27 Aug 2011 06:10:15 GMT
Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/st
rict.dtd">
<HTML>
<HEAD>
<TITLE>HumProxyServer</TITLE><META HTTP-EQUIV="Content-Type" Content="text/html;
 charset=GB2312">
</HEAD>
<BODY><TABLE width=600 border=0 cellspacing=10><TR><TD>
<h1>Hum Proxy Server Response Success!</h1>
</TABLE>
</BODY>
</HTML>
但是我还需要主动closesocket,否则浏览器一直等待。
在IE下可以显示出HTML内容,但是在FF或Chorme下都不能显示,就空白一片,实在搞不清是怎么回事,求教高人解答!!!

解决方案 »

  1.   

    如果该SOCKET连接的响应内容发送完毕,服务端主动断开SOCKET连接就好了。
      

  2.   

    可是响应的内容,IE是可以正常显示的,FF和Chorme等什么都没有。就是说该怎么做让FF等也能显示出来呢??
      

  3.   

    浏览器一直等待。
    是你的 Content-Length: 346 长度计算有误其长度为响应实体的字节长度,不包含头部的空行结束符(4字节)
    该长度值必须精确你已经告诉对方close,数据发送完,当然应该主动 closesocket按照 RFC 1945(1.0) 或者 RFC 2616(1.1)规范,构造header,以获得各种浏览器的支持 
      

  4.   

    HTTP/1.1 200 OK
    Content-Length: 346
    Content-Type: text/html
    X-Powered-By: HUM_PROXY
    Date: Sat, 27 Aug 2011 06:10:15 GMT
    Connection: close这个后面需要2个回车换行哦