访问 Asterisk EAGI 的 FD(三)

Accessing FD (3) for Asterisk EAGI

我有以下 Golang 代码似乎无限期阻塞

eagi := os.NewFile(uintptr(3), "/dev/stdeagi")
data := bufio.NewReaderSize(eagi, 64*1024)
...
data.WriteTo(conn) // Blocks indefinitely!

它似乎甚至没有抛出错误 - 我猜是我访问 FD 不正确。我的目的是访问 Asterisk EAGI 的进程的 FD 3。我也尝试阅读替代路径​​ fmt.Sprintf("/proc/%d/fd/3", os.Getpid()),但这似乎表现相同。我做错了什么?

正确的做法是syscall.Read(fd int, buf []byte) (n int, err error) (doc)。至于我的问题,从 Asterisk 控制台内部,对 sip show channelstats 的调用表明我没有完全接收到 RTP 数据包,并且读取被阻塞,因为真的没有什么可读的。我的网络设置需要改进。