主机地址吧。你访问的是http://172.16.41.154:11000/然后Host=172.16.41.154:11000
这样不是你要访问的服务器主机吗?地址+端口

解决方案 »

  1.   

    Host 是 HTTP 请求报头中必需的报头!其作用主要是用于基于域名的虚拟主机。因为一些网站可能会是同一个 IP 地址,因此单纯地使用 DNS 查询域名的 IP 地址是无法定位网络服务主机的,通过 Host 报头就可以在一个 IP 地址中使用 N 个不同的域名,而不至少乱套!
      

  2.   

    我下面这个例子证明那个好像跟主机无关,跟端口也无关,
    所以就搞不懂了,不明白这行请求数据数据啥意思,有啥用
    具体:
    在Tomcat目录下有 tomcat-6.0.33\webapps\myweb\demo.html 这样一个页面
    下面的代码简单模拟浏览器,想访问这个页面
    打开Tomcat 服务器后,其中Tomcat 服务器的端口是 8080,
    import java.io.*; 
    import java.net.*; class MyIEDemo01 { 
    public static void main(String[] args) throws Exception { 
    Socket s = new Socket("172.16.41.154", 8080); 
    InputStream in = s.getInputStream(); 
    OutputStream out = s.getOutputStream(); 
    //向服务器发送请求
    PrintWriter pw = new PrintWriter(out, true); 
    pw.println("GET /myweb/demo.html HTTP/1.1"); 
    pw.println("Accept: */*"); 
    pw.println("Accept-Language: zh-cn"); 
    //下面这行请求数据数据随便写的,端口也不是8080,我随便写了个00,地址也写成了 172.16.我就这样运行, 
    //照样能访问到 F:\tomcat-6.0.33\webapps\myweb\demo.html 这个页面, 
    //我就怀疑这行数????? 
    pw.println("Host: 172.16.:00"); 
    pw.println("Connection: close"); pw.println(); //一定要写空行 
    pw.println(); BufferedReader bufr = new BufferedReader(new InputStreamReader(in)); 
    String line = null; 
    while((line = bufr.readLine()) != null) { 
    System.out.println(line); 

    s.close(); 

    }
      

  3.   

    Host 用来建立 TCP 连接的,你 TCP 已经把连接建立了,所以这行没用。因为你的代码是直接在 TCP 上编写的,不是在 HTTP 协议上编写的。