持久性连接 (20分)

  • 主题发起人 主题发起人 yyok
  • 开始时间 开始时间
Y

yyok

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Win Socket API 来编程。
我希望建立一个持久性的连接。于是向服务器发送类似这样的请求
GET /software.htm HTTP/1.1
Host: www.abc.com
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Pragma: no-cache
Cache-Control: no-cache
[red]Connection: Keep-Alive[/red]
第一发送这样的请求时服务器可以正确响应。
而当我第二次再在这个socket上发另一个请求时。却什么没有响应。不知道为什么。
程序执行的过程大概是这样的
1.socket //创建socket
2.connect //连接服务器
3.send //第一次发送请求
4.recv //成功收到
3.send //第二次发送请求
5.recv //没有响应,收不到任何响应
望高手指点
 
http协议就是 request /reponse机制的,
也就是一来一回。完一次会话后就自然
被server端断掉了。
所以是无法“建立一个持久性的连接”。
 
持久性的连接是可以建立的。浏览器发送的都是持久性的连接。
 
可以发送 CONNECT IP:PORT /HTTP 1.0
 
楼上说的我不太明白。
 
就是向服务器发送以上的连接请求,前提是服务器支持CONNECT命令。
 
问题我做了点修改。望大家帮帮忙
 
你都已经加上Connection: Keep-alive了,应该就可以了。
 
这也这样认为的.但事实就是不行.
是不是要用WSAIoCtl设置socket的这个SIO_KEEPALIVE_VALS参数呢?
 
不必其它的设置,是否你没有完整地接收第一个请求的应答就发出第二个请求了???
 
所谓的持久性连接是做不到的。
就是等断了以后继续发送第二个过去,那边可以继续接收
 
IE浏览器的每个请求中都有这一行
Connection: Keep-Alive
可见这是可行的。HTTP协议中也说可以。
 
后退
顶部