首页
学习
活动
专区
圈层
工具
发布

Mina入门实例

继续上一篇,这篇主要讲通过mina往B端发送消息。并接受消息,mina是一个网络通信框架,封装了javaNIO。简单易用。网上有非常多关于他的介绍,在此不赘述了。...,相同使用并发包中的ConcurrentHashMap实现,他也是线程安全的,代码例如以下: import java.net.InetSocketAddress;import java.util.HashMap...;import org.apache.mina.core.service.IoConnector;import org.apache.mina.core.session.IoSession;import...用堵塞的方式读取消息,通常是依据消息换行符或者特殊字符,或者对方关闭流来证明一条信息读取完毕,在mina中,有默认的编解码方式。...发现一个系列好文章:http://xxgblog.com/2014/10/16/mina-netty-twisted-10/ 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

76120

Apache MINA框架「建议收藏」

当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。...IoAccepter :相当于网络应用程序中的服务器端,它继承自IoServiece,并进行了扩展。 IoConnector :相当于客户端,它继承自IoServiece,并进行了扩展。...IoSession :当前客户端到服务器端的一个连接实例。 IoHandler :这个接口负责编写业务逻辑,也就是接收、发送数据的地方。这也是实际开发过程中需要用户自己编写的部分代码。...与 decode是最为重要的、也是你在使用 Mina时最主要关注的地方。...; import org.apache.mina.core.session.IoSession; /** * @description:主要是一些业务逻辑,如发送,接收消息 * @date:(2015

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MINA 框架简介「建议收藏」

    Session是服务器端对这种连接的抽象,MINA对其进行了封装,定义了IoSession接口,用来代表客户端与服务器的连接,在服务器端来 指代客户端,实现对客户端的操作、绑定与客户端有关的信息与对象。...Event MINA可以看成是事件驱动的。通常在网络通讯中,可以将整个过程划分为几个基本的阶段,如建立连接、数据通信、关闭连接。...不可能一直都接收和发送数据,因此就有Idle出现,在MINA中,如果在设定的时间内没有数据发送或接收,那么就会触发一个Idle事件。...因此严格来说,有6种类型的事件。 4。IoHandler 从以上MINA框架简图可以看出,对来自客户端数据最终处理是在IoHandler中处理的。...MINA 基本类的描述 在介绍架构之前先认识几个接口: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例

    2K41

    用MINA实现UDP通信的例子

    ),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.executor.ExecutorFilter...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IoSession...IoProcessor:这个接口在另一个线程上,负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中...(5.)IoSession:是对底层连接(服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定)的封装,一个IoSession对应于一个底层的IO连接(在Mina中UDP也被抽象成了连接

    1.7K20

    Mina框架的使用

    大家好,又见面了,我是你们的朋友全栈君。 什么是Mina框架 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。...Mina主页 下载地址 为什么使用Mina? 传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。...当Channel注册至Selector以后,经典的调用方法如下:nio中取得事件通知,就是在selector的select事件中完成的。...如果发现这个值>0,表示有事件发生,马上迭代selectedKeys中的SelectionKey,根据Key中的表示的事件,来做相应的处理。...import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; /**

    1.7K10

    MINA原理详解

    线程中执行 Connector : 作为连接客户端,SocketConector用来和服务器端建立连接,连接成功,创建IoProcessor Thread(不能超过指定的processorCount)...Processor : I/O处理器、允许多线程读写,开发过程中只需要指定线程数量,Processor通过Nio框架进行I/O的续写操作,Processor包含了Nio的Selector的引用。...这点也正是mina的优势,如果直接用Nio编写,则需要自己编写代码来实现类似Processor的功能。...I/O Porcessor线程数的设置 :如果是SocketConnector,则可以在构造方法中指定,如:new SocketConnector(processorCount, Executors.newCachedThreadPool...,实现了接口IoService,维持了一个和服务器端Acceptor的一个链接,线程数量就是创建SocketConnector 的数量 Mina的SocketAcceptor和SocketConnector

    1K20

    java mina框架实例_MINA框架简介和一个简单的例子

    基于MINA框架快速开发网络应用程序 1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架...MINA框架当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。...2.MINA框架的常用类 类NioSocketAcceptor用于创建服务端监听; 类NioSocketConnector用于创建客户端连接; 类IoSession用来保存会话属性和发送消息; 类IoHandlerAdapter...框架来开发的网络应用程序代码结构更清晰;MINA框架完成了底层的线程管理;MINA内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。...具称使用MINA开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。因此,建议在网络应用程序开发过程中尝试使用MINA框架来提高我们的开发效率和应用程序的执行效率。

    1.7K20

    Socket通信封装MIna框架--含羞代放

    Mina异步IO使用的Java底层JNI框架,Mina提供服务端和客户端,将我们的业务解耦开发.真正做到高内聚低耦合的思想核心类===IoService :Mina中将服务端和客户端都看成是服务,这里提供统一接口...也正是IoService来监听消息返回消息这些步骤,undefined可以说IoService就是我们Mina中核心IoProcessor:这个接口在另一个线程上,负责检查是否有数据在通道上读写,也就是说它也拥有自己的...在IoService中我们会定义我们消息的处理过滤器(上文的拦截器),消息处理的业务类undefined在上文简介中我们知道,这一步其实是IoProcessor来完成,那么IoProcessor在什么出现呢...我们一个IoServer处理一个线程中的消息。我们监听器就是监听线程内的消息。每一次的绑定都会有不同的监听器、ioSession去专门处理消息之间的通信。...我们可以通过IoSession设置一些请求数据完成数据的权限验证。在服务创建的时候我们正常需要设置IoSession的一些配置。

    39610

    Android:这是一份很详细的Socket使用攻略

    没有拥塞控制:拥塞,是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象,就像交通堵塞一样。...应用场景 很多的实时应用(如IP电话、实时视频会议、某些多人同时在线游戏等)要求源主机以很定的速率发送数据,并且允许在网络发生拥塞时候丢失一些数据,但是要求不能有太大的延时,UDP就刚好适合这种要求...,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输) 成对出现,一对套接字: Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)} 3....Socket 与 Http 对比 Socket属于传输层,因为 TCP / IP协议属于传输层,解决的是数据如何在网络中传输的问题 HTTP协议 属于 应用层,解决的是如何包装数据 由于二者不属于同一层面...框架 服务器代码请在eclipse平台运行 按照我的步骤一步步实现就可以无脑运行了 步骤1:导入Mina包 请直接移步到百度网盘:下载链接(密码: q73e) ?

    4.2K40

    和 DeepMind 一起考虑如何在 AI 中重现人类的价值观

    AI 科技评论按:现在提到 AI 的时候,大家已经很少联想到电影《终结者》中的天网那样有自己独特思维逻辑以至于得出了反人类结论的「超人类智能」了。...由此他们提出了一个基于奖励建模的递归式应用的方法,让机器在充分理解用户意图的前提下,再去解决真实世界中的复杂问题。 AI 科技评论编译如下。 ?...这个对齐问题可以归纳在强化学习的框架中,差异在于智能体是通过交互协议与用户进行交流、了解他们的意图,而非使用传统的数值化的奖励信号。...至于交互协议的形式可以有很多种,当中包括演示(模仿学习,如谷歌的模仿学习机器人)、偏好倾向(人类直接评价结果,如 OpenAI和DeepMind的你做我评 )、最优动作、传达奖励函数(arxiv.org...协助课题研究取得进展是DeepMind日常工作中很重要的一个主题。如果作为研究者、工程师或者有天赋的通才,有兴趣参与DeepMind的研究中来,DeepMind也欢迎他们申请加入自己的研究团队。

    66220

    为什么Netty这么火?与Mina相比有什么优势?

    它已经得到成百上千的商业/商用项目验证,如Hadoop的RPC框架Avro、RocketMQ以及主流的分布式通信框架Dubbo等等。 为什么这么火,是有原因的。...1、都是Trustin Lee的作品,Netty更晚; 2、Mina将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比下性能会有所下降,Netty解决了这个设计问题; 3、Netty...的文档更清晰,很多Mina的特性在Netty里都有; 4、Netty更新周期更短,新版本的发布比较快; 5、它们的架构差别不大,Mina靠apache生存,而Netty靠jboss,和jboss的结合度非常高...,Netty有对google protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi); 6、Netty比Mina使用起来更简单,Netty里你可以自定义的处理...无连接的特性暴露出来;而Mina对UDP进行了高级层次的抽象,可以把UDP当成"面向连接"的协议,而要Netty做到这一点比较困难。

    4.7K82

    NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战

    这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已经被取消开发了:详见此文)。...本文中的Demo同时用MINA2和Netty4分别实现服务端的目的,是因为很多人都在纠结到底是用MINA还是Netty来实现高并发的Java网络通信服务端,在此干脆两个都实现了,就看你怎么选择。...Demo中,已经解决跨平台通信时的常见的乱码、数据字节异常等问题,如觉得有用,你可直接使用之。 学习交流 - 更多即时通讯技术资料:http://www.52im.net/forum.php?...本文是《NIO框架入门》系列文章中的第4篇,目录如下: 《NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示》 《NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo...服务端运行结果(Netty4方案) 本文小结 Demo中的客户端代码是从开源即时通讯框架MobileIMSDK的Android端中复制出来的(为了方便理解做了大幅简化),有兴趣的可看看 MobileIMSDKAndroid

    1.8K10

    为什么不建议使用 Java 原生 IO?

    从可维护性角度看,由于 NIO 采用了异步非阻塞编程模型,而且是一个 I/O 线程处理多条链路,它的调试和跟踪非常麻烦,特别是生产环境中的问题,我们无法进行有效的调试和跟踪,往往只能靠一些日志来帮助分析...需妥具备其他的额外技能做制垫,例如熟悉Java 多线程编程。这是因为NIO编程涉及到Reactor 模式,你必须对多钱程和网络编程非常如悉,才能编写出高质量的NIO程序。...JDK NIO的BUG,比如epoll bug,这个BUG会在linux上导致cpu 100%,使得nio server/client不可用,这个BUG直到jdk 6u4才解决,但是直到JDK1.7中仍然有这个问题...与Netty同样功能的NIO框架还有Mina,Netty的主导作者与Mina的主导作者是同一人,在设计理念上与Mina基本上是一致的。...Mina出身于开源界的大牛Apache组织,Netty出身于商业开源大亨Jboss。 这几年Netty社区相对比较活跃,所以我们就先选择Netty作为入手网络编程的首选,有时间再学习一下Mina。

    96260
    领券