请看下面的代码:
包主
导入“网”
导入“日志”
导入“bufio”
导入“时间”
功能主(){
l,_:=net.Listen("tcp", ":8888")
为了 {
conn, _ := l.Accept()
log.Println("get conn", conn.RemoteAddr())
去功能(){
f, _:=conn.(*net.TCPConn).File()
d:=f.Fd()
log.Println(d)
f.关闭()
arr := make([]byte, 1000)
读者 := bufio.NewReader(conn)
time.AfterFunc(3*time.Second, func() {
log.Println("close conn", conn.RemoteAddr())
conn.Close()
})
为了 {
大小,错误:= reader.Read(arr)
如果错误!= nil {
休息
}
log.Println("sss", arr[:size])
}
}()
}
}
程序启动时,我用telnet连接localhost:8888,3秒后,服务器把我杀了,但是我用netstat看时socket状态还是ESTABLISHED。如果去掉File()函数,插座可以正常关闭。我该如何解决?
aluckdog
相关分类