MINA的session.close】的更多相关文章

现象:客户端session.close之后,并没有提出,客户端程序一直hold在那里: 解决:调用了session.getService().dispose(false)方法后,客户端程序完成了退出 原因分析:一个connetor创建了之后,在创建之初职责是创建连接,session即使关闭了并不会触发Service关闭(connector以及Acceptor基类都是service),如果想要退出程序,只有通过session获得其所在容器(Service),对Service进行关闭(dispose…
1,要用到4个jar 2,服务端 package mina.server; import java.io.IOException; import java.net.InetSocketAddress; import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.filter.code…
mina现在用的很多了,之前也有用到,但是毕竟不熟悉,于是查了一些资料,做了一些总结.看代码是最直观的,比什么长篇大论都要好.不过其中重要的理论,也要理解下. 首先是环境,程序运行需要几个包,这里用maven比较方便. pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche…
在spring和mina集成的时候,要十分注意一个问题:版本. 这是一个非常严重的问题,mina官网的demo没错,网上很多网友总结的代码也是对的,但是很多人将mina集成到spring中的时候,总是会发现有个问题: java.lang.IllegalArgumentException: Cannot convert value of type [org.apache.mina.integration.beans.InetSocketAddressEditor] to required type…
客户端代码不变,参照 http://www.cnblogs.com/Westfalen/p/6251473.html 服务端代码如下: import java.io.IOException; import java.net.InetSocketAddress; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache…
Apache MiNa 实现多人聊天室 开发环境: System:Windows JavaSDK:1.6 IDE:eclipse.MyEclipse 6.6 开发依赖库: Jdk1.4+.mina-core-2.0.4.jar.slf4j-api-1.5.11.jar.slf4j-log4j12-1.5.11.jar Email:hoojo_@126.com Blog:http://blog.csdn.net/IBM_hoojo http://hoojo.cnblogs.com/ http://…
今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者类的方法.我倒是想从mina源码的结构和功能上对这个框架进行剖析.源码的阅读一般有如下几种方法:第一,根据问题读源码,这种方法可能用的最多,哪里有问题了,然后F3一步步点进去:第二种,专门为了读源码而读,从整体到局部,总用法到设计.第三种,可是根据软件的设计特点,根据特点逐一解读.这几篇文章主要将根据第三种方法进行阅读,因为mina的各个模块很有条理,而且我关注的重点也主…
Mina是什么 Mina是一个基于NIO的网络框架,使用它编写程序时,可以专注于业务处理,而不用过于关心IO操作.不论应用程序采用什么协议(TCP.UDP)或者其它的,Mina提供了一套公用的接口,来支持这些协议.目前可以处理的协议有:HTTP, XML, TCP, LDAP, DHCP, NTP, DNS, XMPP, SSH, FTP... .从这一点来说,Mina不仅仅是一个基于NIO的框架,更是一个网络层协议的实现. MINA 设计架构 1.Mina 整体架构 开发程序时,只需要在Min…
前言: 找了篇文章看了看,nio框架数Mina用的最多! 代码: 服务端: package com.mina; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.…
mina是对nio的具体实现.是目前比较高效和流行的nio(非阻塞式I/O)框架 mina主要包括: 其中服务端为:NioSocketAcceptor 客户端为:NioSocketConnector 使用mina进行一个简单的客户端上传文件的demo的实现: demo实现的思想为:  客 户端跟服务端建立起来连接,客户端每次想服务端传输一定大小的文件内容.(byte的方式),然后服务端接收这些byte,将其output出来,形成文 件.客户端发送完毕后,传递一个完毕的标志,这里可以传个字符串”f…
原文链接:http://www.cnblogs.com/xuekyo/archive/2013/03/06/2945826.html Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架.它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的.事件驱动的.异步的API. Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能.高伸缩性的网络应用.它通过Java NIO提供了一个抽象的.事件驱动的.异步的位于各种传输协议(如TCP/I…
利用Apache MINA来传递对象,这对了MINA来说非常容易,并且这也是Java网络编程中很常用的应用. 首先看两个用来传递的Java对象MyRequestObject和MyResponseObject,很简单只是实现了Serializable接口罢了. MyRequestObject.java package demo5.vo; import java.io.Serializable; public class MyRequestObject implements Serializable…
此例子解决了中文乱码问题. 客服端: MimaTimeClient.java package minaExamle.client; import java.net.InetSocketAddress; import java.nio.charset.Charset; import java.util.Scanner; import minaExamle.common.BaseConfig; import org.apache.mina.core.future.ConnectFuture; imp…
package com.cucpay.fundswap.util; import java.net.InetSocketAddress; import java.nio.charset.Charset; import java.util.concurrent.TimeUnit; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.future.ConnectFuture; import org.apac…
长连接表示一旦建立了链接,就可以长时间的保持双方的通讯,例如: socket链接,推送平台. 短链接表示建立链接,完成数据的交换之后,就断开链接,例如: http链接. mina 框架是对socket链接的一次封装框架,可以更好的管理链接的任务. 在很多的开源项目中使用,例如: Android pn推送框架. 可以通过简单的几行代码建立通讯链接. 客户端: NioSocketConnector connector=new NioSocketConnector(); //设置处理器 connect…
这个教程是介绍使用Mina搭建基础示例.这个教程内容是以创建一个时间服务器. 以下是这个教程需要准备的东西: MINA 2.0.7 Core JDK 1.5 或更高 SLF4J 1.3.0 或更高 Log4J 1.2 用户: slf4j-api.jar, slf4j-log4j12.jar, 和Log4J 1.2.x Log4J 1.3 用户: slf4j-api.jar, slf4j-log4j13.jar, 和Log4J 1.3.x java.util.logging 用户: slf4j-a…
下午那篇博客我们讲到了Mina的客户端的开发,如果还有没看过的同学可以看一下,我是传送门.现在,我们来学习一下,Mina的服务器的开发. 一.首先看一下,我的服务器的代码图片:  服务器代码我是在MyEclipse下写的. 二.服务器的整体思路:(同客户端差不多) 首先,产生一个socket接收对象(SocketAcceptor),用于接收客户端的连接请求: 然后,对这个接收器添加我们的I/O过滤器(SSL加密.日志过滤器.编码过滤器等,这里注意,如果添加SSL过滤器,那么一定要第一个添加,否则…
昨天我们讲到了Mina的基本知识点.如果还有不懂得同学可以看一下我昨天的博客.http://www.cnblogs.com/getherBlog/p/3934927.html今天我着重来讲一下基于Mina的客户端的开发(代码均在最后链接地址中,欢迎下载). 一.首先看一下,我的客户端的代码图片: 客户端代码我是在Eclipse下写的. 二.客户端的整体思路: 首先,产生一个socket连接对象,用于连接到服务器: 然后,对这个连接添加我们的I/O过滤器(SSL加密.日志过滤器.编码过滤器等,这里…
原文地址 http://blog.sina.com.cn/s/blog_720bdf0501010b8r.html 貌似java的IO.NIO的入门例子都有相关的Time Server Demo.本例为MINA官方Demo翻译过来而已. MINA百科: Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MI…
I 里面的写法不够严谨,这也是我之前说它简陋的主要原因,下面来个更加严谨.完整一点儿的: ByteArrayEncoder.java package org.bruce.mina.cpp.codec; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.ProtocolEncoderAdapte…
mina 服务器与 mina 客户端通讯的话, 一.传递 String 时编解码工厂使用 mina 自带的 TextLineCodecFactory 即可: 二.传递 java 对象或 byte[] 时编解码工厂使用 ObjectSerializationCodecFactory 即可. byte[] 实际上就相当于一个 java 对象,在 mina Object..CodecEncoder 的源码中可以清楚的看到, 如果传递的不是一个实现了 Serializable 接口的东西,在 encod…
转载自:http://freemart.iteye.com/blog/836654 使用过 mina 的同学应该都遇到到过,在解码时少包.多包的问题,查阅了很多资料还是迷迷糊糊的,经过不懈努力,终于解决了. 原来解决方法是那样的简单.废话少说,请看例子.  另外建了一个交流群:19702042,大家可以在线交流  问题: 我发送的是 xml 字符串数据,在发送数据后,接收方在解码的时候可能接到1条, 也可能是多条,还可能是半条或一条半,解决方法就是使用 CumulativeProtocolDec…
转载自:http://seara520.blog.163.com/blog/static/16812769820103214817781/ 使用mina传输超过2k以上的数据时(采用tcp方式,如果是UDP方式,好像一次传输的数据不能超过256字节,如果超过mina不会分批次发送,而tcp方式会分批次发送),mina会自动将这些数据分成多次发送.由于是分批次发送数据,所有客服端在接受数据时,需要等所有的数据接受完之后才能解码,否则无法解码,或者只能读取到部分文件. 以下是一个发送.接受大字节数组…
转载 http://blog.csdn.net/cutesource/article/details/6192163 最后我们再看看NIO方面最著名的框架Mina,抛开Mina有关session和处理链条等方面的设计,单单挑出前端网络层处理来看,也采用的是与Jetty和Tomcat类似的模式,只不过它做了些简化,它没有隔开请求侦听和请求处理两个阶段,因此,宏观上看它只分为两个阶段. 先看看它的类图: 其中: SocketAcceptor起线程调用SocketAcceptor.Work负责新连接侦…
SOCKET协议 支持java serial 与 AMF3的混合协议,目前没有基于xml 与 json的实现. 协议说明: * 9个字节协议头+协议体. * * 协议头1-4字节表示协议长度 =协议体长度+9-4(去掉长度占的4字节) * * 协议头第5字节为标志字节: *------------------------ * 该字节的最低位为压缩位:0=协议体未压缩 1=协议体已经压缩, * 该字节的低2-4位为协议位: * 000=基于AMF3的协议, * 001=基于java serial协…
源码下载 http://www.apache.org/dyn/closer.cgi/mina/mina/2.0.9/apache-mina-2.0.9-src.tar.gz 整体架构 核心过程(IoAcceptor 与 IoConnector通讯) 客户端: 1)通过SocketConnector同服务器端建立连接. 2)链接建立之后I/O的读写交给了I/O Processor线程,I/O Processor是多线程的. 3)通过I/O Processor读取的数据经过IoFilterChain…
基于MINA应用程序结构图: 我们可以看出,MINA是应用程序(客户端或服务端)和底层基于TCP,UDP等通讯协议的网络层之间的粘合剂.而且各个模块之间是相互独立的,你只需要在MINA体 系基础上设计你的应用程序,而不用去处理复杂的网络层. 下图展示了MINA的内部组件以及MINA各个组件的功能. 很显然,基于MINA的应用程序被划分为3层: 1. I/O Service  -- 执行真正的I/O操作 2. I/O Filter Chain -- 过滤,转换字节流为想要的数据结构 3. I/O…
1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用MINA框架可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中.MINA框架的应用比较广泛,应用的开源项目有Apache Directory.AsyncWeb.Apache Qpid.QuickFIX/J.Openfire.SubEthaSTMP.red5等.…
继续上一篇,这篇主要讲通过mina往B端发送消息.并接受消息,mina是一个网络通信框架,封装了javaNIO.简单易用.网上有非常多关于他的介绍,在此不赘述了. 如上篇所介绍,完毕功能,须要五个类: PoolListener:监听,用来在系统启动的时候创建连接. SessionPool:连接池. SendHandler:处理类. CharsetEncoder:编码: CharsetDecoder:解码: B为我们提供了6个port.每一个port可建立3个长连接.因此.在系统时,就要创建长连接…
一,前言: 在完成上篇文章<Mina入门:Java NIO框架Mina.Netty.Grizzly简介与对比>之后,我们现在可以正式切入Mina入门学习了. 二,搭建项目结构与解决项目依赖 本人使用Maven来管理项目的依赖.好了,废话也不多说,直接上pom.xml.这里主要是加入mina-core以及其依赖的SLF4J. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/…