今天在用go land写个模拟数据发生工具,要udp广播发多个数据,但总是在第二次发送时报错。
sock, err := net.Dial("udp", "0.0.0.0:6000")
defer sock.Close()
if err != nil {
os.Exit(1)
}
for i:=0; i<*count && startNo > 0; i++{
msg, err := haihua.GetMockMsg(startNo, conn)
if err != nil{
log.Fatal("mock msg failed:", err.Error())
}
data := []byte(msg.Src)
n, err := sock.Write(data)
if err != nil {
log.Fatal("Query failed:", err.Error())
}
startNo = msg.Id
}
网上说了很多原因,但和我无关
最后发现,我想广播到所有网卡,使用了 0.0.0.0:6000
把目标地址换了 192.168.139.0:6000 就不会了发生错误了