暂时忽略rpc的安装问题

构建rpc-server

package main

import (
    "fmt"
    "net"
    "net/http"
    "net/rpc"
)

type User struct {

}

func (u *User) GetUser(name string, out_data *string) error {
    *out_data = "hello "+name
    return nil
}
func main() {
    user := new(User)
    rpc.Register(user)
    rpc.HandleHTTP()
    listen, err := net.Listen("tcp","127.0.0.1:8080")
    fmt.Println("监听...")
    if err != nil{
        fmt.Println(err)
    }
    http.Serve(listen,nil)
}

构建rpc-client

package main

import (
    "fmt"
    "net/rpc"
)

func main() {
    client,err:=rpc.DialHTTP("tcp","127.0.0.1:8080")
    if err !=nil{
        fmt.Println(err)
    }
    var data string
    err1 :=client.Call("User.GetUser","taipi",&data)
    if err !=nil{
        fmt.Println(err1)
    }
    fmt.Println("res->",data)
}

 

posted on 2022-12-19 12:09  topass123  阅读(8)  评论(0编辑  收藏  举报