Как получить базовый syscall.Handle
для *net.UDPConn
в Windows? Я хочу, чтобы этот дескриптор устанавливал IP_MULTICAST_TTL
через syscall.SetsockoptInt
. В Linux я делаю следующее:
func setTTL(conn *net.UDPConn, ttl int) error {
f, err := conn.File()
if err != nil {
return err
}
defer f.Close()
fd := int(f.Fd())
return syscall.SetsockoptInt(fd, syscall.SOL_IP, syscall.IP_MULTICAST_TTL, ttl)
}
Но в Windows неявный dup
внутри *net.UDPConn
File()
терпит неудачу с:
04:24:49 main.go:150: dup: not supported by windows
А в исходниках помечен как -do. Как я могу получить эту ручку? Есть ли другой способ установить TTL, если нет?
Я отправил информацию о недостатках в систему отслеживания проблем Go :