用CInternetSession类
发送http请求
因为以前是短链接,要频繁的发送,开销太大
所以想用长连接,请给个例子。

解决方案 »

  1.   

    WININET可控制性不强,自己用SOCKET吧
      

  2.   

    GET /en/typh/ HTTP/1.1\r\n
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*\r\n
    Accept-Language: zh-cn\r\n
    UA-CPU: x86\r\n
    Accept-Encoding: gzip, deflate\r\n
    If-Modified-Since: Thu, 25 Sep 2008 06:54:18 GMT\r\n
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)\r\n
    Host: www.jma.go.jp\r\n
    Connection: Keep-Alive\r\n\r\n
      

  3.   

    Connection: Keep-Alive\r\n\r\n这个是HTTP/1.1默认的连接方式。
      

  4.   

    Connection: Keep-Alive
    但是一般服务器还是有时间限制的,连接可以保持多少时间,还是需要检查服务器返回的信息头
      

  5.   

    Http 是无状态连接,,怎么可以长连接。。除非使用Socket。
      

  6.   

    如果可以长连接,就不能算http协议
    http协议就是,连接-〉发请求数据-〉接收数据-〉断开,只能这样周而复始
      

  7.   

    可以长连接,自己用SOCKET模拟HTTP协议测试就知道了,,,但是要看服务器
    有的返回Connection关闭
    有的返回可以保持连接的时间长度
      

  8.   

    ls说得对
    道理上说,SOCKET的连接状况与应用协议无关,说http不是长连接也是就“一般态”而言在请求头标中可以有:Connection: Keep-Alive,但是99.99%的不管用
    一次请求后是否中断,连接双方都有权力,通常对公众服务的webserver不会维持连接,响应完毕立即关闭SOCKET,所以除非你知道特定的服务器的行为,写http相关的程序,一般不会考虑长连接的事情
      

  9.   

    我明明是Connection: Keep-Alive,但从服务器端返回的是Connection:close,那我该怎么做
      

  10.   


    最好不要考虑长连接,一次请求,一次连接,绝大多数人都是这么做的:)
    如果要考虑,你的程序就要复杂一倍以上,但是却没有多少用处,因为你可以测试1000家网站,看看有几家不是立即close