我有以下简单的golang程序来下载Google的隐私政策.不幸的是,即使文件长得多,它总是在错误的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