pipeconn

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2020 License: Apache-2.0 Imports: 4 Imported by: 3

README

用pipeconn帮助go语言程序编写不依靠网络连接的 rpc server/client

包路径: gitee.com/rocket049/pipeconn

代码托管页面链接

pipeconn用标准输入输出和管道模拟 io.ReadWriteCloser,可以用于编写不依靠网络连接的 rpc 服务器和客户端,通过它程序可以不通过网络也使用RPC方式调用另一个本机程序。

服务器方建立连接时调用pipeconn.NewServerPipeConn()

客户端建立连接时调用NewClientPipeConn(progPath , args...)

下面是示例程序:

服务端程序:
//pipe-server.go
package main
import (
	"net/rpc"
	"gitee.com/rocket049/pipeconn"
)

//定义服务类型 Arith
......

func main() {
	arith := new(Arith)
	server := rpc.NewServer()
	server.Register(arith)
	conn := pipeconn.NewServerPipeConn()
	server.ServeConn(conn)
}
客户端程序:
//pipe-client.go
package main
import (
	"net/rpc"
	"gitee.com/rocket049/pipeconn"
)

func callRpc()  error{
	conn, err := pipeconn.NewClientPipeConn("./pipe-server")
	if err != nil {
		return error
	}
	client := rpc.NewClient(conn)
	defer client.Close()
	//使用 rpc 调用
	......
}

完整示例程序

rpc 目录中的是一个示例程序。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClientPipeConn

func NewClientPipeConn(prog string, args ...string) (io.ReadWriteCloser, error)

NewClientPipeConn 运行 prog, 返回管道构成的 io.ReadWriteCloser

func NewServerPipeConn

func NewServerPipeConn() io.ReadWriteCloser

NewServerPipeConn 返回由 stdin、stdout 构成的 io.ReadWriteCloser

Types

type ClientPipeConn

type ClientPipeConn struct {
	// contains filtered or unexported fields
}

func (*ClientPipeConn) Close

func (s *ClientPipeConn) Close() error

func (*ClientPipeConn) Read

func (s *ClientPipeConn) Read(p []byte) (n int, err error)

func (*ClientPipeConn) Write

func (s *ClientPipeConn) Write(p []byte) (n int, err error)

type ServerPipeConn

type ServerPipeConn struct{}

func (*ServerPipeConn) Close

func (s *ServerPipeConn) Close() error

func (*ServerPipeConn) Read

func (s *ServerPipeConn) Read(p []byte) (int, error)

func (*ServerPipeConn) Write

func (s *ServerPipeConn) Write(p []byte) (int, error)

Directories

Path Synopsis
golang 标准 rpc 返回结构体时,如果某个结构体成员为零值,那么返回时该成员变量会被自动忽略。
golang 标准 rpc 返回结构体时,如果某个结构体成员为零值,那么返回时该成员变量会被自动忽略。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL