github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/09_rpc/json/server.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/qiuhoude/go-web/prepare/09_rpc/moudle" 6 "log" 7 "net" 8 "net/rpc" 9 "net/rpc/jsonrpc" 10 "os" 11 ) 12 13 func main() { 14 rect := new(moudle.Rect) 15 //注册一个rect服务 16 rpc.Register(rect) 17 18 addr, err := net.ResolveTCPAddr("tcp", ":8000") 19 if err != nil { 20 log.Fatal(err) 21 } 22 listener, err := net.ListenTCP("tcp", addr) 23 if err != nil { 24 log.Fatal(err) 25 } 26 fmt.Printf("%s \n", "start connection") 27 for { 28 conn, err := listener.Accept() 29 if err != nil { 30 continue 31 } 32 go func() { 33 fmt.Fprintf(os.Stdout, "%s", "new client in coming\n") 34 jsonrpc.ServeConn(conn) 35 }() 36 37 } 38 39 }