golang将套接字连接到Stdin / Stdout

时间:2016-05-07 00:27:22

标签: sockets redirect go stdin named-pipes

将套接字连接到Stdin / Stdout的最佳方法是什么。我知道我们可以将stdin / Stdout重定向到任何文件描述符,但我们如何才能对套接字执行相同的操作。 (就像socat的工作方式)?

1 个答案:

答案 0 :(得分:3)

Go中的套接字类型实现了io.Writer接口,os.Stdin实现了io.Reader,所以我的第一个猜测就是尝试bufio.Writer。它可能看起来像:

package main

import (
    "bufio"
    "os"
)

func main() {
    socket := getSocket() // left as an exercise for you to implement
    writer := bufio.NewWriter(socket)
    writer.ReadFrom(os.Stdin)
    // do something to determine when to stop
}