Je dois envoyer un datagramme UDPv6 pouvant suivre ce message par un récepteur local (ou via tcpdump
).Envoi UDPv6 localement dans golang
daddr, err = net.ResolveUDPAddr("udp6", "[address]:port")
if err != nil {
return err
}
conn, err := net.DialUDP("udp6", nil, daddr)
if err != nil {
return err
}
defer conn.Close()
conn.Write(...)
Contrairement à IPv4, ce code ne fonctionne pas avec IPv6. Par exemple, lorsque j'essaie d'envoyer un datagramme à une adresse de multidiffusion, par ex. à [FF01 :: DB8: 0: 0]: 5000, j'obtiens connect: invalid argument
. La même chose arrive quand j'essaie de l'envoyer à [fe80 :: 20c: 29ff: fee1: d66]: 5000 (mon adresse IPv6 selon ifconfig
).
Merci! Pour mon adresse de carte, j'obtiens 'write: connection refused', pour une adresse de multidiffusion (link-local) cela fonctionne comme prévu. – ababo