接第01部分,本节用来说明C#语言的代码实现。
使用thrift生成cs代码之后,会生成两个cs文件,无论是Client还是Server都要包含这个文件。
首先是Server端:
1、新建一个Console项目,引用Thrift程序集中的Thrift.dll,项目中添加生成的两个cs文件。
2、新建一个类MyThriftServer,实现JustATest.Iface接口
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestThrift { class MyThriftServer : JustATest.Iface { public string SayHelloTo(Person person) { return "Hello " + person.Name; } public int Add(int a, int b) { return a + b; } } }
3、修改Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Thrift.Protocol; using Thrift.Server; using Thrift.Transport; namespace TestThrift { class Program { static void Main(string[] args) { TServerSocket serverTransport = new TServerSocket(1900, 0, false); JustATest.Processor processor = new JustATest.Processor(new MyThriftServer()); TServer server = new TSimpleServer(processor, serverTransport); server.Serve(); } } }
4、编译运行
然后是Client端:
1、新建一个Console项目,引用Thrift程序集中的Thrift.dll,项目中添加生成的两个cs文件。
2、修改Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Thrift.Protocol; using Thrift.Transport; namespace TestThriftClient { class Program { static void Main(string[] args) { TTransport transport = new TSocket("localhost", 1900); TProtocol protocol = new TBinaryProtocol(transport); JustATest.Client client = new JustATest.Client(protocol); transport.Open(); Person p = new Person(); p.Name="neohope"; Console.WriteLine(client.SayHelloTo(p)); Console.WriteLine(client.Add(1, 2)); transport.Close(); } } }
3、编译运行