我有以下简单的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