基于tcp通讯

This commit is contained in:
suguo.yao 2021-09-18 17:02:54 +08:00
parent a94bef37f1
commit 79a82e9960
3 changed files with 50 additions and 6 deletions

View File

@ -21,7 +21,6 @@ func main() {
log.Fatal("dialing : ", err)
}
//Synchronous call
args := server.HelloRequest{
Name: "tom",
}

27
client_tcp/main.go Normal file
View File

@ -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
View File

@ -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)
}