wirte.write(http.getBytes());
wirte.flush();你应该这样来访问http服务器:
URL u=new URL("http://...");
HttpURLConnection http=(HttpURLConnection)u.openConnection();
...

解决方案 »

  1.   

    学习阶段所以想知道用Socket实现连接HTTP服务器.
    这是书的例子....难道书上错了吗?
    为什么我送出请求后得不到服务器的回答?
      

  2.   

    wirte.flush();
    你有没有加这一行?没有这一行数据这没有发到服务器方,当然不会有结果书上的例子有错的多了,全信书不如无书!
      

  3.   

    加上还是无响应,我改了一下.
    成功收到服务的响应了....但收到的是400 Bad Request
    Socket readSocket = new Socket("www.xxxx.com", 80);
    BufferedReader read = new BufferedReader( new InputStreamReader( readSocket.getInputStream() ));
    PrintWriter write =
    new PrintWriter(readSocket.getOutputStream(), true);
    StringBuffer buff = new StringBuffer();
    boolean cont = true;
    String http = "GET /index.html HTTP/1.1";
    System.out.println(http);
    write.println(http);
    write.println();
    while (cont) {
    if (read.ready()) {
    int n = 0;
    while(n!= -1) {
    n = read.read();
    buff.append((char)n);
    }
    cont = false;
    }
    Thread.currentThread().sleep(50);
    }
    System.out.println(buff);
    read.close();
    write.close();
    readSocket.close();
    我请求的文件还是没有正确返回给我.是不是我的HTTP请求写的不对?
      

  4.   

    HTTP请求写的不对
    你可以这种方式来测试你写的对不对:
    1、打开MS-DOS或win2000的CMD
    2、telnet www.xxxx.com 80
    3、输入你的http请求后回车两次(你的代码中已经用println输出了两个换行符)
      

  5.   

    最好不要用http1.1,有可能服务器不支持
      

  6.   

    我知道为什么第一次总是得不到响应了,少了一个换行.
    用telnet我还得找个充许远程登陆的......
    不过谢你了.
    最后再麻烦一下关于HTTP或者FTP之类的协议
    就是关于请求各服务回应信息详细说明那里有吗?
    给个就结贴了.
      

  7.   

    这些都是rfc中的内容
    http://www.ietf.org/rfc.html