- 浏览: 276883 次
- 性别:
- 来自: 北京
最新评论
-
gotosuzhou:
好的 谢谢分享
Spring 事务异常回滚 -
cd249745647:
哈哈
Spring MVC REST 例子 -
向日葵上的小蜜蜂:
代码都差不多贴出来了,为啥不直接提供下载呢
Spring MVC REST 例子 -
he3109006290:
我猜它应该有个算法,当出现长时间处理的情况的,它自动会启动另外 ...
netty 疑惑 -
yanghoho6:
很好, 学习了,
oracle基本的索引概念.doc
Mina 需要mina.jar ,log4j.jar,slf4j.jar
Server端
package Server; import java.net.InetSocketAddress; import org.apache.mina.common.DefaultIoFilterChainBuilder; import org.apache.mina.common.IdleStatus; import org.apache.mina.common.IoHandlerAdapter; import org.apache.mina.common.IoSession; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.SocketAcceptor; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaServer { public void init() throws Exception{ SocketAcceptor acceptor = new NioSocketAcceptor(Runtime.getRuntime().availableProcessors() + 1); //设置解析器 DefaultIoFilterChainBuilder chain = acceptor.getFilterChain(); chain.addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory())); acceptor.setHandler(new BexnHandler()); acceptor.bind(new InetSocketAddress(8080)); } public MinaServer() throws Exception { init(); } public static void main(String[] args) throws Exception { new MinaServer(); System.out.println("Server start"); } } class BexnHandler extends IoHandlerAdapter{ @Override public void messageReceived(IoSession session, Object message) throws Exception { System.out.println("messageReceived " + message); super.messageReceived(session, message); session.write("messageReceived "+message); session.closeOnFlush(); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { if (session.isConnected()) { session.close(); } } @Override public void messageSent(IoSession session, Object message) throws Exception { session.close(); } @Override public void sessionClosed(IoSession session) throws Exception { super.sessionClosed(session); System.out.println("sessionClosed"); } @Override public void sessionCreated(IoSession session) throws Exception { session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30000); } @Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { session.close(); } @Override public void sessionOpened(IoSession session) throws Exception { super.sessionOpened(session); } }
Client端
package Client; import java.io.ObjectInputStream.GetField; import java.net.ConnectException; import java.net.InetSocketAddress; import org.apache.mina.common.ConnectFuture; import org.apache.mina.common.IdleStatus; import org.apache.mina.common.IoHandlerAdapter; import org.apache.mina.common.IoSession; import org.apache.mina.common.RuntimeIoException; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.SocketConnector; import org.apache.mina.transport.socket.nio.NioSocketConnector; public class MinaClient { public SocketConnector socketConnector; /** * 缺省连接超时时间 */ public static final int DEFAULT_CONNECT_TIMEOUT = 5; public static final String HOST = "localhost"; public static final int PORT = 8080; public MinaClient() { init(); } public void init() { socketConnector = new NioSocketConnector(); // 长连接 // socketConnector.getSessionConfig().setKeepAlive(true); socketConnector.setConnectTimeout(DEFAULT_CONNECT_TIMEOUT); socketConnector.setReaderIdleTime(DEFAULT_CONNECT_TIMEOUT); socketConnector.setWriterIdleTime(DEFAULT_CONNECT_TIMEOUT); socketConnector.setBothIdleTime(DEFAULT_CONNECT_TIMEOUT); socketConnector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory())); ClientIoHandler ioHandler = new ClientIoHandler(); socketConnector.setHandler(ioHandler); } public void sendMessage(final String msg) { InetSocketAddress addr = new InetSocketAddress(HOST, PORT); ConnectFuture cf = socketConnector.connect(addr); try { cf.awaitUninterruptibly(); cf.getSession().write(msg); System.out.println("send message " + msg); } catch (RuntimeIoException e) { if (e.getCause() instanceof ConnectException) { try { if (cf.isConnected()) { cf.getSession().close(); } } catch (RuntimeIoException e1) { } } } } public static void main(String[] args) throws InterruptedException { MinaClient clent = new MinaClient(); for (int i = 0; i < 1; i++) { System.err.println(i); clent.sendMessage("Hello World " + i); } clent.getSocketConnector().dispose(); //System.exit(0); } public SocketConnector getSocketConnector() { return socketConnector; } public void setSocketConnector(SocketConnector socketConnector) { this.socketConnector = socketConnector; } } class ClientIoHandler extends IoHandlerAdapter { private void releaseSession(IoSession session) throws Exception { System.out.println("releaseSession"); if (session.isConnected()) { session.closeOnFlush(); } } @Override public void sessionOpened(IoSession session) throws Exception { System.out.println("sessionOpened"); } @Override public void sessionClosed(IoSession session) throws Exception { System.out.println("sessionClosed"); } @Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { System.out.println("sessionIdle"); try { releaseSession(session); } catch (RuntimeIoException e) { } } @Override public void messageReceived(IoSession session, Object message) throws Exception { System.out.println("Receive Server message " + message); super.messageReceived(session, message); releaseSession(session); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { System.out.println("exceptionCaught"); cause.printStackTrace(); releaseSession(session); } @Override public void messageSent(IoSession session, Object message) throws Exception { System.out.println("messageSent"); super.messageSent(session, message); } }
发表评论
-
自增 自减 java和c的区别
2012-03-10 15:57 1450JAVA public class Test { ... -
瞎聊系统性能优化
2012-02-19 23:46 1150一个系统中影响性能的无非就是CPU计算能力,磁盘、网络的读写能 ... -
在tomcat中,通过IP访问web系统,不需要端口号的方法(转)
2012-02-06 11:10 8891源文章地址:http://sinian.iteye.com/b ... -
java 编码
2012-02-02 18:23 1168先看一个字符串 String str = &qu ... -
javassist与classLoader
2012-02-02 15:22 4296javassist.jar是个非常 ... -
tcp 和 java socket
2011-12-31 12:52 2823tcp socket 总结点 1 ... -
netty 疑惑
2011-12-01 18:27 2705netty的nio 模式如下 一个线程Boss使用 ... -
Apache Tomcat http_proxy 连接方式配置
2011-11-02 18:03 56111、安装Tomcat ,为了使域名保持一致,在conf\Cat ... -
谈线程池
2011-10-27 12:47 1523线程池原理:用指定数 ... -
设置tomcat启动参数
2011-09-15 16:58 1529window: 在catalina.bat 文件的开始处添加如 ... -
通过反汇编class看i++和++i的区别
2011-08-17 14:32 2116public void method4() ... -
hotspot 控制参数
2011-08-17 09:25 1313文档来源于 http://www.oracle.com ... -
Spring 事务异常回滚
2011-08-16 10:10 11148先看如下代码 @Transactional ... -
java IO和NIO测试
2011-08-11 12:08 1612测试环境:cpu:Q9500 4核 频率2.83GHZ ... -
静态锁和实例锁
2011-07-28 18:21 1955Java中可以对静态方法和实例方法使用synchroni ... -
BASE64 和Dom4j
2011-07-20 09:45 1306项目当中用到MD5做消息摘要,后通过BASE64转成字符 ... -
jetty httpServer和java6内置httpServer比较
2011-07-19 12:03 3064测试情况是客户端100个线程同时同时请求10000次,服务器端 ... -
Jetty HttpClent 异常
2011-07-15 13:48 1237使用Jetty HttpClent做异步请求,结果发现这 ... -
关于Hibernate延迟加载
2011-07-14 17:42 1087package com.lottery.test; ... -
Jetty内嵌Http服务器
2011-07-14 11:13 3396本例只是以HttpServlet方式实现,更多的方式可以通过h ...
相关推荐
在"Mina server client实例"中,我们有两个核心组件:Mina Server和Mina Client。这两个组件通过Java的NIO进行通信,允许客户端与服务器之间高效地交换数据。 **Mina Server** Mina Server是服务端部分,负责监听...
这个“java 实现的mina server client完全能用的”项目可能包含了一个完整的Mina服务器和客户端实现,使得开发者能够快速构建基于TCP或UDP的网络应用。 在Java Mina中,Server是服务端,它监听特定的端口,等待...
**MinaServer for Android** MinaServer是一款专为Android平台设计的服务端应用程序,它基于Apache Mina框架构建,允许开发者在Android设备上实现高性能、低延迟的网络通信服务。Mina是一个开源项目,旨在简化网络...
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
本压缩包包含的是使用Mina Server开发的服务端和客户端的源代码示例,非常适合初学者和有经验的开发者用来学习和参考。 服务端开发: 在Mina中,服务端通常通过创建一个Acceptor来监听特定的端口,等待客户端的连接...
Apache Mina Server 2.0 是一款高性能、可扩展的网络通信框架,广泛应用于开发网络应用服务器,如TCP/IP和UDP服务。这个框架允许开发者用Java编写高效的网络应用程序,简化了网络编程的复杂性。Mina 2.0 版本在前一...
Mina Server调试工具是针对Apache Mina框架设计的一款专业软件,用于帮助开发者高效地调试Mina服务器应用程序。Apache Mina是一个高度可扩展的网络通信框架,广泛应用于开发高性能、高并发的TCP和UDP服务。这款...
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高...
**MinaClient详解** MinaClient,全称为Apache Mina,是一个开源的网络通信框架,主要应用于Java平台。它的设计目标是提供一个高度可扩展、高性能、轻量级的网络应用开发框架,使得开发者能够方便地创建出面向服务...
在本学习笔记中,我们将专注于MINA的子项目——FtpServer,它是实现FTP服务器功能的一个模块。 FTP(File Transfer Protocol)是一种广泛使用的互联网协议,用于在不同主机之间传输文件。Apache MINA FtpServer提供...
Apache Mina是一个开源项目,主要用于构建高...在`MinaTimeServer`和`MinaClient`的例子中,我们可以看到如何使用Mina轻松地建立一个简单的服务器和客户端通信系统,这对于理解和学习Mina的基本用法是非常有帮助的。
5. **创建Client端**:在客户端,也需要创建一个Mina连接器,通过连接器与服务端建立连接。然后,发送RPC请求并处理响应。 ```java Bootstrap bootstrap = new Bootstrap(); bootstrap.group(workerGroup) ....
### Apache Mina Server深入教程V1.0 #### 一、Apache Mina Server简介 Apache Mina Server是一款高性能且易于使用的网络通信应用框架,主要基于TCP/IP和UDP/IP协议栈进行设计,同时也支持其他类型的通信服务,...
在这个“mina消息推送例子”中,我们将深入探讨Mina如何实现消息推送,并结合Spring框架进行集成。 首先,Apache Mina提供了一个异步事件驱动的网络应用编程接口(API),它简化了TCP/IP和UDP协议的处理,如HTTP、...
这个"mina权威性能测试例子"是针对Apache Mina的一个实际性能测试案例,旨在展示在特定环境下Mina如何处理大量并发连接。在这个测试中,四台客户端机器同时对服务器进行压力测试,结果显示服务器可以轻松地处理一万...
Apache Mina FTPServer是一个基于Apache Mina框架的轻量级FTP服务器实现,它为开发者提供了构建自定义FTP服务器的能力。这个框架非常适合初学者学习,因为它提供了清晰的结构和丰富的文档,帮助理解网络通信和FTP...
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...
帮助你快速学习Mina框架,Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于 TCP/IP、UDP/IP协议栈的通信框架。Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用。
MinaServer 学习使用mina框架 SocketServer.java为原生的serverSocket创建的socket服务器、实现与多个客户端socket实时通信; 由于随着客户端数量的增加;原生的serversocket不能很好的管理与各个客户端连接的socket...
**mina TCP Server** Mina(全称:Java Apache MINA,即Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发高质量的面向服务的架构(SOA)和...