基于tcp通讯
This commit is contained in:
parent
a94bef37f1
commit
79a82e9960
|
|
@ -21,7 +21,6 @@ func main() {
|
|||
log.Fatal("dialing : ", err)
|
||||
}
|
||||
|
||||
//Synchronous call
|
||||
args := server.HelloRequest{
|
||||
Name: "tom",
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/rpc"
|
||||
|
||||
"myschools.me/suguo/rpc-sample/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
client, err := rpc.Dial("tcp", "127.0.0.1:1234")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
defer client.Close()
|
||||
args := server.HelloRequest{
|
||||
Name: "tom",
|
||||
}
|
||||
var reply server.HelloResponse
|
||||
err = client.Call("Hello.Say", args, &reply)
|
||||
if err != nil {
|
||||
log.Fatal("hello error : ", err)
|
||||
}
|
||||
fmt.Printf("Result: %s \n", reply.Reply)
|
||||
}
|
||||
28
main.go
28
main.go
|
|
@ -1,18 +1,36 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"log"
|
||||
"net"
|
||||
"net/rpc"
|
||||
"strings"
|
||||
|
||||
"myschools.me/suguo/rpc-sample/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// rpc.HandleHTTP()
|
||||
// err := http.ListenAndServe(":1234", nil)
|
||||
// if err != nil {
|
||||
// fmt.Println(err.Error())
|
||||
// }
|
||||
defer func() {
|
||||
err := recover()
|
||||
if err == nil {
|
||||
log.Fatal("no error")
|
||||
}
|
||||
if !strings.Contains(err.(error).Error(), "reading body EOF") {
|
||||
log.Fatal("expected `reading body EOF', got", err)
|
||||
}
|
||||
}()
|
||||
|
||||
rpc.Register(&server.Hello{})
|
||||
rpc.HandleHTTP()
|
||||
err := http.ListenAndServe(":1234", nil)
|
||||
|
||||
listen, err := net.Listen("tcp", "127.0.0.1:1234") //端口为0表示任意端口
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
panic(err)
|
||||
}
|
||||
defer listen.Close()
|
||||
rpc.Accept(listen)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue