У меня есть следующая простая программа golang для загрузки политики конфиденциальности Google.К сожалению, он всегда вылетает с ошибкой unexpected EOF
после считывания 6861 байта, хотя документ намного длиннее.Почему?
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)
}
}
выходы:
read 1024
read 1024
read 1024
read 1024
read 1024
read 1024
dial read crashed: unexpected EOF