thrift 笔记

简单 Client

有了接口、有了服务端,那么肯定要来一个客户端调用。

直接上代码:

public class Client {

    public static void main(String[] args) {
        TTransport transport = null;
        try {
            // 开启一个链接
            transport = new TSocket("localhost", 8989, 500);
            // 协议要和服务端一致
            TProtocol protocol = new TBinaryProtocol(transport);
            UserService.Client client = new UserService.Client(
                    protocol);
            transport.open();
            User user = client.getUserById(1);
            System.out.println(user);
        } catch (TTransportException e) {
            e.printStackTrace();
        } catch (TException e) {
            e.printStackTrace();
        } finally {
            if (null != transport) {
                transport.close();
            }
        }
    }

}

代码中先初始化一个传输通道(TTransport),先简单地看作是socket的封装,跟之前服务端的 TServerSocket 类似。

然后就是协议编码器,在然后就是初始化一个 client ,再就是远程调用了。

最后会输出 Hello World!?!?

links