发送http1.1请求时,建立一个socket tcp连接后,,多次send,recv获取网页内容!每次获取一个网页内容都建立连接,发送请求,接收数据,关闭连接,这方式工作很正常!但是现在要实现只建立一次连接,不需要再获取网页时再关闭连接.我循环send和recv,只能是第一次send和第一次recv能得到正确数据,之后都是返回错误.Connection: keep-alive的http头也用了,网站也会返回Connection: keep-alive,同时我也截取了IE浏览器的传输数据,发现确实能共用连接的!这要怎么实现呢???忙了好久了,都没有能实现!快发疯了..

解决方案 »

  1.   

    用没用 WSAAsyncSelect() ?
      

  2.   

    可以看看libcurl库怎么实现的,或者直接用这个库就行了,
      

  3.   

    关注,
    客户端发送请求--->接收数据后,没做什么,服务端即主动关闭了连接,还是再次请求时断的?
    也许再次请求时用的Http协议有问题,导致服务端不认而关闭连接。能抓到IE的包,那么模拟IE的Http格式发第二次的请求。
      

  4.   

    Sleep一下,又不就发满缓冲区~~~
      

  5.   

    最近两天发现Wininet会自动使用同一连接!!但是问题还在,,在处理HTTPS的SSL安全连接时却不会使用同一连接!!纠结呐!!HTTPS使用同一连接时速度的提升是非常明显的!!