mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
rpc documentation cleanup: remove ;'s from code in documentation
R=r CC=golang-dev https://golang.org/cl/624042
This commit is contained in:
parent
7f7751837c
commit
4467037353
1 changed files with 18 additions and 18 deletions
|
|
@ -53,53 +53,53 @@
|
|||
type Arith int
|
||||
|
||||
func (t *Arith) Multiply(args *Args, reply *Reply) os.Error {
|
||||
reply.C = args.A * args.B;
|
||||
reply.C = args.A * args.B
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *Arith) Divide(args *Args, reply *Reply) os.Error {
|
||||
if args.B == 0 {
|
||||
return os.ErrorString("divide by zero");
|
||||
return os.ErrorString("divide by zero")
|
||||
}
|
||||
reply.C = args.A / args.B;
|
||||
reply.C = args.A / args.B
|
||||
return nil
|
||||
}
|
||||
|
||||
The server calls (for HTTP service):
|
||||
|
||||
arith := new(Arith);
|
||||
rpc.Register(arith);
|
||||
rpc.HandleHTTP();
|
||||
l, e := net.Listen("tcp", ":1234");
|
||||
arith := new(Arith)
|
||||
rpc.Register(arith)
|
||||
rpc.HandleHTTP()
|
||||
l, e := net.Listen("tcp", ":1234")
|
||||
if e != nil {
|
||||
log.Exit("listen error:", e);
|
||||
log.Exit("listen error:", e)
|
||||
}
|
||||
go http.Serve(l, nil);
|
||||
go http.Serve(l, nil)
|
||||
|
||||
At this point, clients can see a service "Arith" with methods "Arith.Multiply" and
|
||||
"Arith.Divide". To invoke one, a client first dials the server:
|
||||
|
||||
client, err := rpc.DialHTTP("tcp", serverAddress + ":1234");
|
||||
client, err := rpc.DialHTTP("tcp", serverAddress + ":1234")
|
||||
if err != nil {
|
||||
log.Exit("dialing:", err);
|
||||
log.Exit("dialing:", err)
|
||||
}
|
||||
|
||||
Then it can make a remote call:
|
||||
|
||||
// Synchronous call
|
||||
args := &server.Args{7,8};
|
||||
reply := new(server.Reply);
|
||||
err = client.Call("Arith.Multiply", args, reply);
|
||||
args := &server.Args{7,8}
|
||||
reply := new(server.Reply)
|
||||
err = client.Call("Arith.Multiply", args, reply)
|
||||
if err != nil {
|
||||
log.Exit("arith error:", err);
|
||||
log.Exit("arith error:", err)
|
||||
}
|
||||
fmt.Printf("Arith: %d*%d=%d", args.A, args.B, reply.C);
|
||||
fmt.Printf("Arith: %d*%d=%d", args.A, args.B, reply.C)
|
||||
|
||||
or
|
||||
|
||||
// Asynchronous call
|
||||
divCall := client.Go("Arith.Divide", args, reply, nil);
|
||||
replyCall := <-divCall.Done; // will be equal to divCall
|
||||
divCall := client.Go("Arith.Divide", args, reply, nil)
|
||||
replyCall := <-divCall.Done // will be equal to divCall
|
||||
// check errors, print, etc.
|
||||
|
||||
A server implementation will often provide a simple, type-safe wrapper for the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue