向同一网站发送两次数据,一定要关闭第一次的链接才能发第二次吗?

解决方案 »

  1.   

    1. 判断收到的content的字节长度是否与 content-length 一致
    2. 如果发送请求的httpheader包含 connection: close
       当服务器发送完毕后,会自动断开连接。
    3. 如果使用 connection: keep-alive, 可以请求后再继续请求。
      

  2.   

    现在的情况是:第一次发送后我收到了登陆页面和cookie,可收到的信息中没有你说的1和2,而且我第一次发送的信息中就包含connection: keep-alive,我继续发送第二次的信息,结果报错"100046"还在连接中,请问怎么办?
      

  3.   

    那你就发送 connection: close
    服务器发送完自动断开。
    然后再重新连接重新发送第二此请求
      

  4.   

    <发送> 
    GET /readme.html HTTP/1.1
    User-Agent: maozai
    Host: 127.0.0.1:80
    Connection: keep-alive
    <收到> 
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    X-Powered-By: ASP.NET
    Date: Sat, 16 Aug 2003 05:23:31 GMT
    Content-Type: text/html
    Accept-Ranges: bytes
    Last-Modified: Sat, 08 Feb 2003 07:03:22 GMT
    ETag: "059a32a40cfc21:e6d"
    Content-Length: 11507<html>
    <head>
    <title>Untitled Document</title>
    ……
    我就这样发送,收到的也是很标准的HTTP Header,包含了content-length
    并且,如果请求没有出错的话,服务器没有断开连接,第二次请求可以直接发送,不必重新连接。
      

  5.   

    加了个winsock.close,解决!!!
    谢谢 猫仔!!!
    加分!