首页 > 其他 > 详细

goroute应用-模拟远程调用RPC

时间:2019-04-19 23:01:30      阅读:155      评论:0      收藏:0      [点我收藏+]

go语言简单模拟RPC,详见个人新博客:blog.dlgde.cn

代码如下:

package main

import (
	"errors"
	"fmt"
	"time"
)

func RPCClient(ch chan string, req string) (string, error) {
	ch <- req
	select {
	case ack := <-ch:
		return ack, nil
	case <-time.After(time.Second):
		return "", errors.New("Time out")
	}
}

func RPCServer(ch chan string) {
	for {
		data := <-ch
		fmt.Println("server received:", data)
		//time.Sleep(time.Second * 2)
		ch <- "roger"
	}

}

func main() {
	ch := make(chan string)
	go RPCServer(ch)

	recv, err := RPCClient(ch, "hi")

	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("client received", recv)
	}
}

  

goroute应用-模拟远程调用RPC

原文:https://www.cnblogs.com/qstudy/p/10739287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!