亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

go語言net包rpc遠程調用的使用示例

2019-11-02 14:07:13
字體:
來源:轉載
供稿:網友

rpc 包提供了一個方法來通過網絡或者其他的I/O連接進入對象的外部方法. 一個server注冊一個對象, 標記它成為可見對象類型名字的服務。注冊后,對象的外部方法就可以遠程調用了。一個server可以注冊多個 不同類型的對象,但是卻不可以注冊多個相同類型的對象。

只有滿足這些標準的方法才會被遠程調用視為可見;其他的方法都會被忽略:

- 方法是外部可見的。
- 方法有兩個參數,參數的類型都是外部可見的。
- 方法的第二個參數是一個指針。
- 方法有返回類型錯誤

一、基于http的RPC

服務端:

package main; import (  "net/rpc"  "net/http"  "log") //go對RPC的支持,支持三個級別:TCP、HTTP、JSONRPC//go的RPC只支持GO開發的服務器與客戶端之間的交互,因為采用了gob編碼 //注意字段必須是導出type Params struct {  Width, Height int;} type Rect struct{} //函數必須是導出的//必須有兩個導出類型參數//第一個參數是接收參數//第二個參數是返回給客戶端參數,必須是指針類型//函數還要有一個返回值errorfunc (r *Rect) Area(p Params, ret *int) error {  *ret = p.Width * p.Height;  return nil;} func (r *Rect) Perimeter(p Params, ret *int) error {  *ret = (p.Width + p.Height) * 2;  return nil;} func main() {  rect := new(Rect);  //注冊一個rect服務  rpc.Register(rect);  //把服務處理綁定到http協議上  rpc.HandleHTTP();  err := http.ListenAndServe(":8080", nil);  if err != nil {    log.Fatal(err);  }} 

客戶端:

package main; import (  "net/rpc"  "log"  "fmt") type Params struct {  Width, Height int;} func main() {  //連接遠程rpc服務  rpc, err := rpc.DialHTTP("tcp", "127.0.0.1:8080");  if err != nil {    log.Fatal(err);  }  ret := 0;  //調用遠程方法  //注意第三個參數是指針類型  err2 := rpc.Call("Rect.Area", Params{50, 100}, &ret);  if err2 != nil {    log.Fatal(err2);  }  fmt.Println(ret);  err3 := rpc.Call("Rect.Perimeter", Params{50, 100}, &ret);  if err3 != nil {    log.Fatal(err3);  }  fmt.Println(ret);} 

二、基于tcp的RPC

服務端:

package main; import (  "net"  "log"  "net/rpc") //注意字段必須是導出type Params struct {  Width, Height int;} type Rect struct{} func (r *Rect) Area(p Params, ret *int) error {  *ret = p.Width * p.Height;  return nil;} func (r *Rect) Perimeter(p Params, ret *int) error {  *ret = (p.Width + p.Height) * 2;  return nil;} func chkError(err error) {  if err != nil {    log.Fatal(err);  }} func main() {  rect := new(Rect);  //注冊rpc服務  rpc.Register(rect);  //獲取tcpaddr  tcpaddr, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:8080");  chkError(err);  //監聽端口  tcplisten, err2 := net.ListenTCP("tcp", tcpaddr);  chkError(err2);  //死循環處理連接請求  for {    conn, err3 := tcplisten.Accept();    if err3 != nil {      continue;    }    //使用goroutine單獨處理rpc連接請求    go rpc.ServeConn(conn);  }} 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品视频免费在线观看| 91精品国产沙发| 最近中文字幕日韩精品| 精品福利在线视频| 欧美另类xxx| 日本最新高清不卡中文字幕| 欧美xxxx18性欧美| 97热在线精品视频在线观看| www.日韩.com| 丝袜亚洲欧美日韩综合| 色偷偷9999www| 一区二区三区四区精品| 亚洲高清一区二| 亚洲已满18点击进入在线看片| 97视频网站入口| 少妇av一区二区三区| 在线免费观看羞羞视频一区二区| 精品国产一区二区三区久久| 在线精品国产欧美| 国产视频久久久久| 午夜精品久久久99热福利| 国产欧美精品一区二区三区介绍| 亚洲黄色在线观看| 亚洲性猛交xxxxwww| www日韩欧美| 九九精品视频在线观看| 国产色婷婷国产综合在线理论片a| 国产在线视频91| 97香蕉久久夜色精品国产| 久久久天堂国产精品女人| 欧美在线www| 久久频这里精品99香蕉| 亚洲精品日韩av| 久久亚洲精品视频| 日韩一区在线视频| 精品自拍视频在线观看| 亚洲天堂免费在线| 久久99久久99精品中文字幕| 精品成人在线视频| 亚洲电影在线看| 欧美成人h版在线观看| 欧美成aaa人片在线观看蜜臀| 亚洲综合日韩中文字幕v在线| 国产亚洲精品久久久久久牛牛| 黄网站色欧美视频| 欧美激情久久久| 91精品啪aⅴ在线观看国产| 日韩中文理论片| 亚洲成成品网站| 亚洲电影免费观看| 亚洲影院污污.| 日韩在线www| 97久久精品在线| 日韩视频―中文字幕| 久久九九亚洲综合| 中文字幕在线国产精品| 亚洲欧美一区二区三区情侣bbw| 亚洲国产另类 国产精品国产免费| 欧美丝袜一区二区| 欧美交受高潮1| 欧美一区二区三区免费视| 国产亚洲美女久久| 成人亲热视频网站| 日韩专区在线观看| 日本国产一区二区三区| 国产99久久精品一区二区 夜夜躁日日躁| 国产精品扒开腿爽爽爽视频| 91精品久久久久久久久久久| 精品电影在线观看| 国产91在线播放九色快色| 欧美一级片免费在线| 日韩视频免费在线观看| 亚洲精品国产精品乱码不99按摩| 日韩精品视频在线观看免费| 午夜免费日韩视频| 国产精品亚洲激情| 欧美激情中文网| 国产69精品99久久久久久宅男| 国产精品日日做人人爱| 日韩中文娱乐网| 欧美理论电影在线观看| 国产精品一区二区久久国产| 国产亚洲视频在线| 欧美视频在线视频| 亚洲欧洲在线播放| 91人成网站www| 这里精品视频免费| 日韩av在线网| 欧美高清激情视频| 日韩精品视频三区| 国产精品激情自拍| 日韩av免费看网站| 97视频在线播放| 国产亚洲美女久久| 91青草视频久久| 色妞色视频一区二区三区四区| 中文字幕成人精品久久不卡| 亚洲自拍另类欧美丝袜| 欧美另类极品videosbestfree| 国产精品96久久久久久又黄又硬| 欧美国产日韩二区| 91夜夜未满十八勿入爽爽影院| 亚洲深夜福利视频| 国产精品久久久久久久av大片| 日本午夜精品理论片a级appf发布| 国产美女被下药99| 日韩美女免费视频| 欧美成人午夜激情视频| 欧美精品videosex性欧美| 亚洲国产精品成人av| 欧美自拍视频在线| 欧美国产精品va在线观看| 92看片淫黄大片看国产片| 中文字幕欧美日韩va免费视频| 欧美激情在线观看视频| 久久五月情影视| 亚洲另类图片色| 欧美性猛交xxxx黑人猛交| 亚洲第五色综合网| 中文字幕精品—区二区| 国产成人jvid在线播放| 91在线高清视频| 亚洲精品久久在线| 亚洲欧洲激情在线| 亚洲97在线观看| 国产精品88a∨| 日韩欧美一区二区三区| 亚洲免费av网址| 欧美黄色片免费观看| 久久综合国产精品台湾中文娱乐网| 欧美成人激情视频免费观看| 欧美国产极速在线| 高清欧美电影在线| 日韩国产精品视频| 欧美精品xxx| 国产精品九九久久久久久久| 国自产精品手机在线观看视频| 欧美劲爆第一页| 亚洲国产美女精品久久久久∴| 26uuu国产精品视频| 亚洲福利在线观看| 91产国在线观看动作片喷水| 成人黄色片在线| 国产精品女人久久久久久| 亚洲美女性视频| 亚洲aⅴ日韩av电影在线观看| 亚洲国产精久久久久久久| 国产精品老牛影院在线观看| 亚洲电影免费观看高清完整版| 欧美激情影音先锋| 日本久久久久亚洲中字幕| 久久久精品2019中文字幕神马| 国产精品电影网站| 91亚洲va在线va天堂va国| 98午夜经典影视| 国产亚洲成av人片在线观看桃| 欧美最猛性xxxx| 久久免费视频在线| 69久久夜色精品国产69乱青草| 亲爱的老师9免费观看全集电视剧| 亚洲成人久久一区| 国产精品观看在线亚洲人成网| 欧美成人精品h版在线观看| 91po在线观看91精品国产性色|