Aller: des expressions du FOLKLORE lors de la lecture à partir d'une prise

J'ai le simple suivant golang programme pour télécharger de la politique de confidentialité de Google. Malheureusement, il se bloque toujours avec l'erreur unexpected EOF après la lecture de la 6861 octets, même si le document est beaucoup plus long. Pourquoi?

package main

import "net"
import "fmt"
import "io"
import "os"

func die(msg string, s os.Error) {
    fmt.Printf("%s crashed: %v\n", msg, s)
    os.Exit(1)
}

func main() {
    fd, err := net.Dial("tcp", "google.com:80")
    if err != nil { die("dial", err) }

    req := []byte("GET /intl/en/privacy/HTTP/1.0\r\nHost: www.google.com\r\n\r\n")
    _, err = fd.Write(req)
    if err != nil { die("dial write", err) }

    buf := make([]byte, 1024)
    nr := 1

    for nr > 0 {
        nr, err = io.ReadFull(fd, buf)
        if err != nil { die("dial read", err) }
        fmt.Printf("read %d\n", nr)
    }
}

sorties:

read 1024
read 1024
read 1024
read 1024
read 1024
read 1024
dial read crashed: unexpected EOF

OriginalL'auteur aaronsw | 2011-10-29