github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/p2p/netutil/toobig_windows.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:41</date> 10 //</624450105537204224> 11 12 13 //+构建窗口 14 15 package netutil 16 17 import ( 18 "net" 19 "os" 20 "syscall" 21 ) 22 23 const _WSAEMSGSIZE = syscall.Errno(10040) 24 25 //ispackettoobig报告err是否指示UDP数据包没有 26 //安装接收缓冲区。在Windows上,wsarecvfrom返回 27 //对wsaemsgsize进行编码,如果发生这种情况,则没有数据。 28 func isPacketTooBig(err error) bool { 29 if opErr, ok := err.(*net.OpError); ok { 30 if scErr, ok := opErr.Err.(*os.SyscallError); ok { 31 return scErr.Err == _WSAEMSGSIZE 32 } 33 return opErr.Err == _WSAEMSGSIZE 34 } 35 return false 36 } 37