github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/jsonrpc/client.go (about) 1 package jsonrpc 2 3 import ( 4 "net" 5 "net/rpc" 6 "net/rpc/jsonrpc" 7 ) 8 9 type Client struct { 10 conn net.Conn 11 client *rpc.Client 12 } 13 14 func (c *Client) Listen(address string) error { 15 var err error 16 c.conn, err = net.Dial("tcp", address) 17 if err != nil { 18 return err 19 } 20 c.client = jsonrpc.NewClient(c.conn) 21 return nil 22 } 23 24 func (c *Client) GetLink() *rpc.Client { 25 return c.client 26 } 27 28 func (c *Client) Call(method string, args any, reply any) error { 29 return c.client.Call(method, args, reply) 30 } 31 32 func (c *Client) Close() { 33 _ = c.client.Close() 34 _ = c.conn.Close() 35 }