我知道服务器一般是在80端口等待客户端的请求,那回应的时候给客户端的哪个端口发响应消息,是固定还是客户端自己指定的

解决方案 »

  1.   

    http协议是“拉”模式,也就是说是客户端主动发送请求,然后等待服务器回应的模式
    你客户端主动发的时候,是需要绑定端口的,你以这个端口发送HTTP请求,服务器就把请求
    发给你的这个端口。
    不过虽然HTTP协议是由TCP协议封装的,但是客户端确是由一系列短连接组成的,它不维持连接,即客户端
    连接上服务器,发送一个请求,接收一个回应,然后就关闭了,在有请求重复上面的过程
      

  2.   

    参考socket的recv函数里不是有SOCKADDR_IN结构体吗?
    里面保存了发送端的ip和port
      

  3.   

    http是基于tcp协议的,收发都有包自己的端口和ip地址。
      

  4.   

    客户端如果只是CONNECT的话,通常是随机的
      

  5.   

    GET / HTTP/1.1
    Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 1.7; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)
    Host: www.baidu.com
    Connection: Keep-Alive
    Cookie: BAIDUID=B85A348B421C9DEB82465D80AA40283B:FG=1截获了上面的数据包,通过sendto怎么发送,直接用sendto发送上面的数据吗
      

  6.   

    截获了http数据包也不知道怎么通过套接字来发送啊,大家指点下吧
      

  7.   

    你不能用sendto,你需要用send
    基本上就是原样发送,HTTP是文本协议