源代码见,以下主要是做个重要代码记录

http://download.csdn.net/detail/json20080301/8180351

NETTYclient获取数据採用的方式是异步获取数据,不像socket你不知道服务端何时处理请求,何时能得到响应。即使得到响应也没法自己主动退出程序。

必须使用下面步骤:

=================step 0.当然是发起异步连接操作,等待client链路关闭

//发起异步连接操作

ChannelFuture f = b.connect(this.host, this.port).sync();

//等待client链路关闭

f.channel().closeFuture().sync();

================step1.加入超时handler : pipeline.addLast( new ReadTimeoutHandler(6));

================step2.//优雅退出,释放NIO线程组 group.shutdownGracefully();

================step3.自己定义EchoClientHandler ,捕获ReadTimeoutHandler的6秒异常,然后关闭链路

public class EchoClientHandler extends ChannelInboundHandlerAdapter {

/* 

*捕获ReadTimeoutHandler的6秒异常,然后关闭链路。 

*/

public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {

logger.log(Level.WARNING, "Unexpected exception from downstream.",

cause);

ctx.close();//发生异常关闭链路

}

}

====================对于第三步我想说,假设你自己定义的数据协议中有推断消息包是否结束的方法。也能够将 ctx.close();//发生异常关闭链路
, 举比例如以下:

public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {

ctx.flush();

if(sureQuit()){

// ctx.close();

}

}

推断能否够关闭链路;一旦关系链路,client代码就会运行 group.shutdownGracefully(); 释放线程组,这样client就能够整个进程退出啦。

nettyclient异步获取数据的更多相关文章

  1. 用redux-thunk异步获取数据

    概述 最近学习redux,打算用redux-thunk给todo添加异步获取数据组件.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 在todo下方,我异步获取我的react博客的标题,点击 ...

  2. IOS开发---菜鸟学习之路--(十二)-利用ASIHTTPRequest进行异步获取数据

    想要实现异步获取的话我这边了解过来有两个非常简单的方式 一个是利用ASIHTTPRequest来实现异步获取数据 另一个则是利用MBProgressHUD来实现异步获取数据 本章就先来讲解如何利用AS ...

  3. ajax异步获取数据后动态向表格中添加数据(行)

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...

  4. MVC—实现ajax+mvc异步获取数据

    之前写过ajax和一般处理程序的结合实现前后台的数据交换的博客,如今做系统用到了MVC,同一时候也用到了异步获取数据. ajax+一般处理程序与MVC+ajax原理是一样的在"URL&quo ...

  5. node 创建静态web服务器(下)(处理异步获取数据的两种方式)

    接上一章. 上一章我们说创建的静态web服务器只能识别html,css,js文件,功能较为单一,且图片格式为text/html,这是不合理的. 本章,我们将解决该问题. 这里,我们先准备好一个json ...

  6. datatables异步获取数据、简单实用

    IKC项目总结 一.认证难题管理模块 1. 如何使用datatables进行获取数据内容 datatables简介:Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何H ...

  7. Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转

    问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...

  8. IOS开发---菜鸟学习之路--(十三)-利用MBProgressHUD进行异步获取数据

    本章将介绍如何利用MBProgressHUD实现异步处理数据. 其实我本来只是像实现一个加载数据时提示框的效果,然后问了学长知道了这个类,然后就使用了 接着就发现了一个“BUG” 再然后就发现原来MB ...

  9. react+dva 全局model中异步获取数据state在组件中取不到值

    先上结论,不是取不到,是写法有问题. 全文分4部分,1是问题描述,2是一开始的解决想法(错误做法),3是问题产生原因的思考,4是正常解决方法.只想看结论直接跳4 1.问题描述 接触react dva一 ...

随机推荐

  1. 点集配对问题(状态dp)

    给定n个点(n是偶数)使得两个点两两配对,最后总的距离和最小. 用是表示集合,那么dp[s]表示集合s配对后的最小距离和  , 状态转换方程为  表示集合中任意拿两个元素配对,然后转移为更小的两个集合 ...

  2. Windows Phone开发(1):概论

    原文:Windows Phone开发(1):概论 Windows Phone是微软公司开发的手机操作系统,这里就不多介绍,和Android,iPhone一样运行在智能手机上,相信大家都很熟悉. 目前来 ...

  3. Zabbix的数据表结构

    看到Zabbix的数据表结构吧,就知道数据量大了 性能问题很让人担忧,不过基于Zabbix数据库导出报表,或自动跑报表的时候,就必须去了解一下zabbix的数据表结构了,得知道XX放在哪才能找到XX, ...

  4. Android 通过系统使用NotificationListenerService 监听各种Notification的用法

    NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService. 在继承Not ...

  5. 阶乘因式分解(一)(南阳oj56)

    阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描写叙述 给定两个数m,n,当中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数, ...

  6. DrectX11学习笔记Texture2D有关

    ///////////////////////////////////////////////////////////////////////////////////// 有时候....有时候.... ...

  7. HDOJ 5147 Sequence II 树阵

    树阵: 每个号码的前面维修比其数数少,和大量的这后一种数比他的数字 再枚举每一个位置组合一下 Sequence II Time Limit: 5000/2500 MS (Java/Others)    ...

  8. ImportError with IronPython in C#

    I was using IronPython to execute python code inside my C# implementation lately, and I encountered ...

  9. SQL server 表数据改变触发发送邮件

    今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件. 领到这个需求后,有同事提供方案:写触发器触发外部应用程序.这是个大胆的想法啊,从来没写过这样的触 ...

  10. 简单的反射 把datatable 转换成list对象

    /// <summary> /// 把datatable 转换成list对象 /// </summary> /// <typeparam name="T&quo ...