package main import ("fmt" "log" "net" "net/rpc" "net/rpc/jsonrpc" ) type Args struct { First int } type Reply struct { Value int } type RpcOps int func (t *RpcOps) AddOne(args *Args, reply *Reply) error { reply.Value = args.First + 1 return nil } func main() { rpc.Register(new(RpcOps)) listener, e := net.Listen("tcp", ":60085") if e != nil { log.Fatal("listen error:", e) } for { conn, err := listener.Accept() if err != nil { fmt.Println("got error: ", err.Error()) return } go jsonrpc.ServeConn(conn) } }