美文网首页Golang编程随笔Golang 入门资料+笔记
pipeconn:编写不依靠网络连接的 rpc server/c

pipeconn:编写不依靠网络连接的 rpc server/c

作者: 从火星来 | 来源:发表于2019-07-04 22:08 被阅读20次

    包路径: 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 调用
        ......
    }
    

    ** 完整示例程序 **

    相关文章

      网友评论

        本文标题:pipeconn:编写不依靠网络连接的 rpc server/c

        本文链接:https://www.haomeiwen.com/subject/bumdhctx.html