本文整理汇总了Golang中golang.org/x/net/ipv4.PacketConn.WriteTo方法的典型用法代码示例。如果您正苦于以下问题:Golang PacketConn.WriteTo方法的具体用法?Golang PacketConn.WriteTo怎么用?Golang PacketConn.WriteTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类golang.org/x/net/ipv4.PacketConn
的用法示例。
在下文中一共展示了PacketConn.WriteTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: benchmarkReadWriteIPv4UDP
func benchmarkReadWriteIPv4UDP(b *testing.B, p *ipv4.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) {
cm := ipv4.ControlMessage{TTL: 1}
if ifi != nil {
cm.IfIndex = ifi.Index
}
if n, err := p.WriteTo(wb, &cm, dst); err != nil {
b.Fatal(err)
} else if n != len(wb) {
b.Fatalf("got %v; want %v", n, len(wb))
}
if _, _, _, err := p.ReadFrom(rb); err != nil {
b.Fatal(err)
}
}
示例2: sender
func sender(p *ipv4.PacketConn, dst net.Addr) {
ift, err := net.Interfaces()
if err != nil {
log.Fatal(err)
}
for i := 0; ; i++ {
avail := net.FlagMulticast | net.FlagUp
for _, ifi := range ift {
if ifi.Flags&avail != avail {
continue
}
p.SetMulticastInterface(&ifi)
b := []byte(fmt.Sprintf("#%v HELLLO-R-U-THERE", i))
if _, err := p.WriteTo(b, nil, dst); err != nil {
log.Println(err, "on", ifi)
continue
}
log.Printf("%v bytes sent to %v via %v\n", len(b), dst, ifi)
time.Sleep(time.Second)
}
}
}