socket 如何实现多次send,recv

fenfenshysky 2011-01-31 05:06:58
发送http1.1请求时,建立一个socket tcp连接后,,多次send,recv获取网页内容!

每次获取一个网页内容都建立连接,发送请求,接收数据,关闭连接,这方式工作很正常!

但是现在要实现只建立一次连接,不需要再获取网页时再关闭连接.

我循环send和recv,只能是第一次send和第一次recv能得到正确数据,之后都是返回错误.

Connection: keep-alive的http头也用了,网站也会返回Connection: keep-alive,

同时我也截取了IE浏览器的传输数据,发现确实能共用连接的!

这要怎么实现呢???忙了好久了,都没有能实现!快发疯了..
...全文
651 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenfenshysky 2011-02-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 varding 的回复:]
可以看看libcurl库怎么实现的,或者直接用这个库就行了,
[/Quote]

谢谢推荐了,,你说了我才知道有这么个库,,有必要好好了解一下!
fenfenshysky 2011-02-03
  • 打赏
  • 举报
回复
最近两天发现Wininet会自动使用同一连接!!

但是问题还在,,在处理HTTPS的SSL安全连接时却不会使用同一连接!!

纠结呐!!HTTPS使用同一连接时速度的提升是非常明显的!!
dsswxl 2011-02-01
  • 打赏
  • 举报
回复
Sleep一下,又不就发满缓冲区~~~
TandyT 2011-02-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 varding 的回复:]
可以看看libcurl库怎么实现的,或者直接用这个库就行了,
[/Quote]

参考下吧
myaname 2011-01-31
  • 打赏
  • 举报
回复
关注,
客户端发送请求--->接收数据后,没做什么,服务端即主动关闭了连接,还是再次请求时断的?
也许再次请求时用的Http协议有问题,导致服务端不认而关闭连接。

能抓到IE的包,那么模拟IE的Http格式发第二次的请求。
varding 2011-01-31
  • 打赏
  • 举报
回复
可以看看libcurl库怎么实现的,或者直接用这个库就行了,
renxu350 2011-01-31
  • 打赏
  • 举报
回复
用没用 WSAAsyncSelect() ?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧