Windowsの の基盤syscall.Handle
を取得するにはどうすればよいですか? このハンドルでvia*net.UDPConn
を設定したい。Linuxでは、次のことを行います。IP_MULTICAST_TTL
syscall.SetsockoptInt
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
insideは次*net.UDPConn
のようにFile()
失敗します。
04:24:49 main.go:150: dup: Windows ではサポートされていません
そして、ソース コードでは、to-do としてマークされています。このハンドルを取得するにはどうすればよいですか? そうでない場合、TTLを設定する他の方法はありますか?
Update0
欠点を Go イシュー トラッカーに提出しました。