package com.goldcard.platform.netty;
import static org.jboss.netty.channel.Channels.pipeline;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import org.jboss.netty.bootstrap.ClientBootstrap;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
import org.jboss.netty.handler.codec.serialization.ClassResolvers;
import org.jboss.netty.handler.codec.serialization.ObjectDecoder;
import org.jboss.netty.handler.codec.serialization.ObjectEncoder;
import org.jboss.netty.handler.codec.string.StringDecoder;
import org.jboss.netty.handler.codec.string.StringEncoder;
import com.goldcard.platform.entity.Command;
/**
* 启动一个client线程,用来间歇性的发送消息
*
* @author Ransom
*/
public class ClientThread implements Runnable {
private ChannelFuture future;
public ChannelFuture getFuture() {
return future;
}
public void setFuture(ChannelFuture future) {
this.future = future;
}
public void run() {
initClient();
}
public void initClient() {
/*
* 实例化一个客户端Bootstrap实例, NioClientSocketChannelFactory是Netty默认提供的。 两个参数,一个是boss的线程池,一个是worker执行的线程池。
* 两个线程池都使用了java.util.concurrent.Executors中的线程池来创建。
*/
ClientBootstrap bootstrap = new ClientBootstrap(
new NioClientSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool()));
/*
* 设置piplineFactory, 顾名思义,就是产生默认的pipline。 pipline的实例是DefaultChannelPipeline 提供了链式的事件通讯机制
*/
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
/*
* (non-Javadoc)
* @see org.jboss.netty.channel.ChannelPipelineFactory#getPipeline()
*/
public ChannelPipeline getPipeline() throws Exception {
/*
* 在DefaultChannelPipeline的过滤器 链中实现了 encode 、decode、handler 其中encode实现自ChannelDownstreamHandler接口
* decode、Handler实现自ChannelUpstreamHandler接口 也就说明了在client发送消息的时候,默认按照顺序会先调用decode
* 在client接收到响应的时候,会按照顺序调用encode和Handler。 后面会有文章专门将ChannelDownstreamHandler和ChannelUpstreamHandler的调用顺序。
*/
ChannelPipeline pipleline = pipeline();
pipleline = Channels.pipeline(new ObjectEncoder(),
new ObjectDecoder(ClassResolvers.cacheDisabled(this.getClass().getClassLoader())),
new ClientObjectHandler());
// pipleline.addLast("encode", new StringEncoder());
// pipleline.addLast("decode", new StringDecoder());
// pipleline.addLast("handler", new Handler());
return pipleline;
}
});
/*
* 与127.0.0.1建立长连接。
*/
future = bootstrap.connect(new InetSocketAddress("localhost", 8080));
System.out.println("链接已建立,地址为:localhost:8080");
}
/**
* 发送消息至server
*/
public void sendMsg() {
if (future == null) return;
String s = "Hello Server!";
future.getChannel().write(s);
}
public void sendObjMsg() {
Command command = new Command();
command.setActionName("Hello action.");
future.getChannel().write(command);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
ssm框架整合及所有jar包
共104个文件
jar:56个
class:14个
java:12个
4星 · 超过85%的资源 需积分: 9 279 下载量 137 浏览量
2015-02-27
08:44:24
上传
评论 1
收藏 19.76MB 7Z 举报
温馨提示
该框架适合初学者学习及使用,导入即可开始项目的开发,方便快捷,框架内无冗余代码,一些基础类及工具类需要自己写。
资源推荐
资源详情
资源评论
收起资源包目录
ssm框架整合及所有jar包 (104个子文件)
ClientThread.class 2KB
TQController.class 2KB
ServerObjectHandler.class 2KB
ClientObjectHandler.class 2KB
UserController.class 2KB
ServerHandler.class 2KB
Handler.class 2KB
ClientThread$1.class 2KB
Server$1.class 2KB
Server.class 1KB
JavaTeam.class 1KB
HelloWord.class 967B
Command.class 664B
IJavaTeamOperation.class 318B
.classpath 5KB
org.eclipse.wst.common.component 564B
org.eclipse.wst.jsdt.ui.superType.container 49B
netty-all-4.0.23.Final.jar 1.7MB
aspectjweaver.jar 1.47MB
netty-all-4.0.0.CR3.jar 1.41MB
druid-0.2.9.jar 1.4MB
netty-all-4.0.0.CR3-sources.jar 1.25MB
netty-3.7.0.Final.jar 1.15MB
freemarker-2.3.19.jar 909KB
jackson-databind-2.2.1.jar 845KB
spring-core-3.2.0.M2.jar 813KB
spring-context-3.2.0.M2.jar 813KB
mysql-connector-java-5.1.20-bin.jar 784KB
struts2-core-2.3.8.jar 775KB
mybatis-3.2.5.jar 700KB
jackson-mapper-asl-1.8.8.jar 653KB
xwork-core-2.3.8.jar 604KB
javassist-3.11.0.GA.jar 600KB
spring-webmvc-3.2.0.M2.jar 596KB
spring-beans-3.2.0.M2.jar 586KB
spring-web-3.2.0.M2.jar 582KB
log4j-1.2.16.jar 470KB
spring-jdbc-3.2.0.M2.jar 389KB
spring-orm-3.2.0.M2.jar 375KB
spring-aop-3.2.0.M2.jar 325KB
commons-lang3-3.1.jar 308KB
fastjson-1.1.6.jar 278KB
cglib-2.2.jar 272KB
spring-tx-3.2.0.M2.jar 235KB
spring-test-3.2.0.M2.jar 225KB
ognl-3.0.6.jar 223KB
jackson-core-asl-1.8.8.jar 222KB
spring-jms-3.2.0.M2.jar 196KB
jackson-core-2.2.1.jar 188KB
spring-webmvc-portlet-3.2.0.M2.jar 184KB
spring-expression-3.2.0.M2.jar 170KB
commons-dbcp-1.4.jar 157KB
commons-io-2.0.1.jar 156KB
netty-buffer-4.0.0.CR3.jar 153KB
spring-context-support-3.2.0.M2.jar 107KB
commons-pool-1.4.jar 85KB
netty-handler-4.0.0.CR3.jar 79KB
spring-oxm-3.2.0.M2.jar 71KB
spring-aspects-3.2.0.M2.jar 68KB
commons-fileupload-1.2.2.jar 58KB
mybatis-spring-1.2.0.jar 48KB
asm-3.2.jar 42KB
commons-logging-1.0.4.jar 37KB
spring-struts-3.2.0.M2.jar 35KB
jackson-annotations-2.2.1.jar 33KB
jackson-module-jaxb-annotations-2.2.1.jar 25KB
slf4j-api-1.6.1.jar 25KB
struts2-spring-plugin-2.3.8.jar 21KB
jcl-over-slf4j-1.6.1.jar 17KB
spring-instrument-tomcat-3.2.0.M2.jar 10KB
slf4j-log4j12-1.6.1.jar 10KB
spring-instrument-3.2.0.M2.jar 7KB
aopalliance.jar 4KB
ClientThread.java 4KB
TQController.java 3KB
Server.java 2KB
UserController.java 2KB
JavaTeam.java 1KB
ClientObjectHandler.java 1015B
ServerObjectHandler.java 1013B
Handler.java 979B
Command.java 934B
ServerHandler.java 869B
HelloWord.java 751B
IJavaTeamOperation.java 249B
.jsdtscope 500B
index.jsp 834B
MANIFEST.MF 36B
.mymetadata 321B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 364B
.project 2KB
jdbc.properties 1KB
jdbc.properties 1KB
log4j.properties 1KB
log4j.properties 1KB
spring-mybatis.xml 3KB
spring-mybatis.xml 3KB
spring-mvc.xml 3KB
spring-mvc.xml 3KB
共 104 条
- 1
- 2
资源评论
- cannotfindobject2015-11-11本以为是spring+springMVC+MyBatis,结果是struts2+spring+Mybatis玲姐mike2015-11-17好好看看额,是spring+springMVC+MyBatis
- wtf-lzc2015-09-21资源不错 很全 省了不少事儿
玲姐mike
- 粉丝: 7
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功