ListenしているSocketのfdを知りたいが、net.Listenerのインターフェースをみても取得する方法がないのでググったら、 http://naoina.plog.la/2013/11/12/235753683181 こんな記事をみつけた。 Socketからfdが取得できないのは、POSIX縛りになるからだと思われるが、ここで方法へどうやって辿りついたかよくわからなかったので調べてみた。 TCPListenerの定義を調べると、 // src/pkg/net/tcpsock_posix.go type TCPListener struct { fd *netFD }となっているので、reflectパッケージを使えば、 reflect.Indirect(reflect.Indirect(reflect.ValueOf(listener)).FieldByName("fd"))で、