【发布时间】:2011-11-19 03:58:57
【问题描述】:
我想使用从如下所示的数据包中获得的信息创建到 Web 服务器的 tcp 连接。为此,我需要数据包中的主机名和端口号来获取可用于连接功能的地址
这是假设我使用的是 c++ 我可以假设与服务器交谈以请求 html 页面的端口号是 80 吗? 假设数据包是 char 数组的形式,我如何从数据包中获取主机名?我目前提取字符串 bits.wikimedia.org 并将其用作主机名。那是对的吗? 一旦我有了主机名,我假设我将它传递给 getaddrinfo 并使用我与这个函数一起传递的结构来生成一个包含连接函数可以理解的信息的结构。这个假设正确吗?
GET http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=false&lang=en&modules=site&only=scripts&skin=vector&* HTTP/1.1
Host: bits.wikimedia.org
Proxy-Connection: close
User-Agent: Mozilla/5.0 (compatible; Konqueror/4.6; Linux) KHTML/4.6.5 (like Gecko) Fedora/4.6.5-7.fc15
Referer: http://en.wikipedia.org/wiki/Firewall_(computing)
Accept: */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate
Accept-Charset: utf-8, utf-8;q=0.5, *;q=0.5
Accept-Language: en-US,en;q=0.9
【问题讨论】: