有一个通过stdio通信的客户端和服务器。我认为我对stdin和stdout基本上感到困惑。我对stdio有一些疑问。
服务器是否从客户端写入的stdin或stdout中读取请求?
服务器是否将响应写到客户端可以读取的stdin或stdout?
下面是服务器端连接部分的代码片段。
case "stdio":
log.Println("server: reading on stdin, writing on stdout")
<-jsonrpc2.NewConn(context.Background(), jsonrpc2.NewBufferedStream(stdrwc{}, jsonrpc2.VSCodeObjectCodec{}), handler, connOpt...).DisconnectNotify()
log.Println("connection closed")
return nil
type stdrwc struct{}
func (stdrwc) Read(p []byte) (int, error) {
return os.Stdin.Read(p)
}
func (stdrwc) Write(p []byte) (int, error) {
return os.Stdout.Write(p)
}
func (stdrwc) Close() error {
if err := os.Stdin.Close(); err != nil {
return err
}
return os.Stdout.Close()
}
慕雪6442864
相关分类