Nifty是facebook公司开源的,基于netty的thrift服务端和客户端实现。然后使用此包就可以快速发布出基于netty的高效的服务端和客户端代码。

https://github.com/facebook/nifty

Nifty简单例子

1)环境搭建

pom文件

<dependency>   <groupId>com.facebook.nifty</groupId>   <artifactId>nifty-core</artifactId>   <version>0.9.0</version>  </dependency>  <dependency>   <groupId>org.apache.thrift</groupId>   <artifactId>libthrift</artifactId>   <version>0.9.1</version>  </dependency>

Thrift文件

namespace java example  // defines the namespace     typedef i32 int  //typedefs to get convenient names for your types    service ThriftTestService {   string test(1:string name),//delay 3s}

Server文件

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import org.apache.thrift.TProcessor;import com.facebook.nifty.core.NettyServerTransport;import com.facebook.nifty.core.ThriftServerDef;import com.facebook.nifty.core.ThriftServerDefBuilder;import example.ThriftTestService;import example.ThriftTestServiceImpl;public class Server { /**  * @param args  */ public static void main(String[] args) {  // Create the handler    ThriftTestService.Iface serviceInterface = new ThriftTestServiceImpl();    // Create the processor    TProcessor processor = new ThriftTestService.Processor<ThriftTestService.Iface>(      serviceInterface);    // Build the server definition    ThriftServerDef serverDef = new ThriftServerDefBuilder().listen(7790)      .withProcessor(processor).build();    // Create the server transport    final NettyServerTransport server = new NettyServerTransport(serverDef);    // Start the server    server.start();    // Arrange to stop the server at shutdown    Runtime.getRuntime().addShutdownHook(new Thread() {     @Override     public void run() {      try {       server.stop();      } catch (InterruptedException e) {       Thread.currentThread().interrupt();      }     }    });    System.out.println("服务器启动成功..."); }}

Client

import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;import example.ThriftTestService;public class Client { /**  * @param args  */ public static void main(String[] args) throws Exception {  TTransport transport = new TSocket("localhost", 7790);  transport.open();  TProtocol protocol = new TBinaryProtocol(transport);  ThriftTestService.Client client = new ThriftTestService.Client(protocol);  System.out.println(client.test("aa"));  transport.close(); }}

Thrift交流(二)thrift服务端和客户端实现 Nifty相关推荐

  1. Netty学习笔记(二) 实现服务端和客户端

    在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 J ...

  2. PYNQ 采集计划(二)Socket服务端与客户端的搭建,pynq到pc的数据流传输

    文章目录 利用Socket搭建客户端和服务端 简易Socket收发 服务端的搭建 客户端的搭建 真正的视频socket收发 服务端 PC端客户端 进行测试 源码github地址 利用Socket搭建客 ...

  3. 搭建简易的物联网服务端和客户端-Maibu控制(二十一)

    创建麦布应用程序,麦步按键控制.原理和网页控制差不多,就是麦步访问之前创建的两个buttonclick接口.感谢qs100371大神. 代码地址:https://github.com/ZZES-ZVD ...

  4. 【201】openssl生成服务端和客户端证书详解

    内容目录(原文见公众号python宝) 一.基本知识点介绍二.openssl生成服务端和客户端证书www.xmmup.com 一.基本知识点介绍   要支持https请求,那就需要一个SSL证书. S ...

  5. 关于windows系统安装sybase数据库 服务端和客户端使sybase数据库服务启动失败的问题解决方案以sybase Ase _15.7为例

    关于windows系统安装sybase数据库 服务端和客户端使sybase数据库服务启动失败的问题解决方案以sybase Ase _15.7为例 一.sybase Ase服务安装后能够正常启动,安装s ...

  6. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  7. java sslsocket程序_JAVA与C++进行sslsocket通信,JAVA做服务端或客户端

    前几天有位网友问我关于Unity3D里面使用Protobuf的方法,一时有事拖到现在才写这篇文章,不好意思哈. 本文测试环境: 系统:WINDOWS 7(第3.6步).OS X 10.9(第4步) 软 ...

  8. 【★更新★】高性能 Windows Socket 服务端与客户端组件(HP-Socket v2.0.1 源代码及测试用例下载)...

    HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket.现在把 HP-Socket 的所有代码向大众公开,希望能对大 ...

  9. netty tcp服务端主动断开客户端_【Netty】服务端和客户端

    欢迎关注公众号:[爱编程] 如果有需要后台回复2019赠送1T的学习资料哦!! 本文是基于Netty4.1.36进行分析 服务端 Netty服务端的启动代码基本都是如下: private void s ...

  10. C# Socket服务端与客户端通信(包含大文件的断点传输)

    步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收 ...

最新文章

  1. 常用开源协议介绍以及开源软件规范列表
  2. matlab小波分析工具箱原理与应用_补充:频域特征值提取的MATLAB代码实现(小波分析)...
  3. Facebook、谷歌、微软利用“黑暗模式”诱骗用户交出数据
  4. (4)javascript的运算符以及运算符的优先级
  5. 整理了7道Python函数的练习题,希望对你学习函数有帮助
  6. 新年图书整理和相关的产品
  7. C++(静态)(常量)数据进行初始化问题以及静态变量析构
  8. 一日一学:返回排序好的列表的索引顺序
  9. python中if语句求最大值_python 判断三个数字中的最大值实例代码
  10. 卸载win10装Ubuntu笔记
  11. Linux基础(4)--用户与权限
  12. 报表FineReport部署Tomcat服务器
  13. 数据结构课程设计题目
  14. (附源码)计算机毕业设计SSM保险客户管理系统
  15. stmt php,PHP mysqli_stmt_free_result() 函数用法及示例
  16. 设置部署服务器的运行端口,以太坊swarm配置bzz运行常见问题解决方案
  17. PX4 Bootloader解析
  18. Win10、Win11打开远程桌面连接方法
  19. java scriptrunner,java使用ScriptRunner执行sql文件
  20. 单链表———带头结点跟不带头结点的区别

热门文章

  1. 强劲大小核结构 三星将推八核处理器
  2. android自定义四边形,以编程方式在Android中创建平行四边形绘图
  3. python求偏导_python中几种自动微分库解析
  4. 【C++005】结构体(值传递,地址传递,数组)
  5. 用代码关闭冰刃(IceSword)
  6. win10怎么显示文件后缀名,2个步骤,不到1分钟学会
  7. 还在为记不住js中的api烦恼吗?下面是我整理的我在学习js初级时用到过的部分api,希望能帮助到大家
  8. 编辑网页document.body.contentEditable=‘true‘;
  9. Bzoj4484 [Jsoi2015]最小表示
  10. 使用opencv读取rtsp流的图片帧进行目标检测,并将处理好的图像推到rtsp服务器上