Unity3D 網絡庫使用 UDP 并具有用于 RPC 調用的方法。我試圖讓我的服務器通過 UDP 使用 RPC,但我遇到了一些麻煩。這是我現在得到的基本服務器代碼:type Args struct { X, Y int}type RequestHandler struct{}func (self *RequestHandler) Add(args *Args, reply *int) error { *reply = args.X + args.Y return nil}func main() { addr := net.UDPAddr{ Port: 5127, IP: net.ParseIP("127.0.0.1") } handler := new(RequestHandler) rpc.Register(handler) conn, err := net.ListenUDP("udp", &addr) defer conn.Close() if err != nil { panic(err) } for { go rpc.ServeConn(conn) }}這是客戶端代碼:type Args struct { X, Y int}func main() { client, err := rpc.Dial("udp", "127.0.0.1:5127") if err != nil { log.Fatal("dialing:", err) } // Synchronous call args := &Args{7,8} var reply int err = client.Call("RequestHandler.Add", args, &reply) if err != nil { log.Fatal("arith error:", err) } fmt.Printf("Result: %d + %d = %d", args.X, args.Y, reply)}當我運行這些時,它們都掛了,什么也沒發(fā)生。我究竟做錯了什么?
在 GO 中使用 UDP 的 RPC
慕的地6264312
2021-08-30 15:15:18