内容简介:1,客户端2,服务端3,实现类
1,客户端
package thrift
import (
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"net"
"os"
"test/idlgen/HelloWorld"
)
func Client1() {
transportFactory := thrift.NewTBufferedTransportFactory(8192)
protocolFactory := thrift.NewTCompactProtocolFactory()
transport, err := thrift.NewTSocket(net.JoinHostPort("127.0.0.1", "9999"))
if err != nil{
fmt.Println("err")
os.Exit(1)
}
useTransport := transportFactory.GetTransport(transport)
client := HelloWorld.NewHelloGoClientFactory(useTransport, protocolFactory)
if err = transport.Open(); err != nil{
fmt.Println("err")
os.Exit(1)
}
defer transport.Close()
res, err := client.Hello("hello")
if err != nil{
fmt.Println("err")
os.Exit(1)
}
fmt.Println(res)
}
2,服务端
package thrift
import (
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"test/idlgen/HelloWorld"
)
func Server1() {
transport, err := thrift.NewTServerSocket(":9999")
if err != nil{
fmt.Println("err")
}
handler := &HelloGo{}
processor := HelloWorld.NewHelloGoProcessor(handler)
transportFactory := thrift.NewTBufferedTransportFactory(8192)
protocolFactory := thrift.NewTCompactProtocolFactory()
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
if err := server.Serve(); err != nil{
fmt.Println("err")
}
}
3,实现类
package thrift
type HelloGo struct {
}
func (hg *HelloGo) Hello(name string) (string, error) {
return name, nil
}
4,idl定义
namespace php Idlgen.HelloWorld
namespace java Idlgen.HelloWorld
namespace go idlgen.HelloWorld
service HelloGo{
string hello(1:string name),
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度学习核心技术与实践
猿辅导研究团队 / 电子工业出版社 / 2018-2 / 119.00元
《深度学习核心技术与实践》主要介绍深度学习的核心算法,以及在计算机视觉、语音识别、自然语言处理中的相关应用。《深度学习核心技术与实践》的作者们都是业界一线的深度学习从业者,所以书中所写内容和业界联系紧密,所涵盖的深度学习相关知识点比较全面。《深度学习核心技术与实践》主要讲解原理,较少贴代码。 《深度学习核心技术与实践》适合深度学习从业人士或者相关研究生作为参考资料,也可以作为入门教程来大致了......一起来看看 《深度学习核心技术与实践》 这本书的介绍吧!