apache mina
本文为博主原创,未经允许不得转载:
Apache Mina(Apache Multipurpose Infrastructure for Network Applications)是一个基于Java的网络编程框架,专为开发高性能、可伸缩的网络应用程序而设计。
Apache Mina的主要特点如下:
1.支持多种网络协议,包括TCP、UDP、SSL/TLS、HTTP等。
2.提供连接、I/O、过滤器和编解码等多个核心组件,可灵活构建多种应用场景。
3.采用事件驱动、异步I/O的方式,可以处理大量并发连接。
4.提供高效的内存管理、资源池管理等功能,可以大大节约系统资源,提升系统性能。
5.提供丰富的I/O过滤器,可快速实现各种自定义协议和数据的处理。
6.开源免费,活跃的开发、发布和维护社区,可获得长期的技术支持。
Apache Mina框架被广泛应用于互联网、移动互联网、物联网等各种大规模、高并发的网络应用程序中,如聊天室、游戏服务端、实时数据采集、消息队列等等。
下面简单列举一个使用Apache Mina框架开发的示例:
假设要开发一个基于TCP协议的网络服务,提供简单的字符串转换功能。客户端连接到服务端后,可以输入要转换的字符串,服务端接收后将其转换为大写,然后返回给客户端显示。
实现步骤如下:
1.创建Mina服务端:通过继承IoHandlerAdapter实现服务端逻辑,实现messageReceived()方法用于处理接收到的消息,并在其中进行字符串转换处理。将服务端绑定指定的端口。
2.创建Mina客户端:通过实例化IoConnector,然后使用connect()方法连接到服务端。在连接成功后,可利用send()方法将字符串发送到服务端。
3.启动服务端和客户端:在main()方法中分别启动服务端和客户端。
示例代码如下:
- public class TcpServer extends IoHandlerAdapter {
- public static void main(String[] args) throws Exception {
- // 创建服务器端口
- ServerSocketAcceptor acceptor = new NioSocketAcceptor();
- acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
- acceptor.setHandler(new TcpServer());
- acceptor.bind(new InetSocketAddress(1443));
- System.out.println("TCP Server Started on Port 1443");
- }
- @Override
- public void messageReceived(IoSession session, Object message) throws Exception {
- String str = message.toString();
- System.out.println("Received Message:" + str);
- session.write(str.toUpperCase());
- }
- }
- public class TcpClient {
- public static void main(String[] args) throws Exception {
- // 创建客户端连接
- IoConnector connector = new NioSocketConnector();
- connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
- connector.setHandler(new IoHandlerAdapter() {
- @Override
- public void messageReceived(IoSession session, Object message) throws Exception {
- String str = message.toString();
- System.out.println("Received Message:" + str);
- }
- });
- ConnectFuture future = connector.connect(new InetSocketAddress("localhost", 1443));
- future.awaitUninterruptibly();
- IoSession session = future.getSession();
- // 发送消息
- session.write("Hello World");
- }
- }
以上代码简单演示了如何使用Mina框架来进行网络程序开发,实现了基于TCP协议的简单字符串转换功能,同时展示了如何使用IoSession来发送和接收消息等相关操作。
apache mina的更多相关文章
- Apache MiNa 实现多人聊天室
Apache MiNa 实现多人聊天室 开发环境: System:Windows JavaSDK:1.6 IDE:eclipse.MyEclipse 6.6 开发依赖库: Jdk1.4+.mina-c ...
- Apache Mina(一)
原文链接:http://www.cnblogs.com/xuekyo/archive/2013/03/06/2945826.html Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应 ...
- Apache MINA(一)
Apache MINA is a network application framework which helps users develop high performance and high s ...
- Apache Mina 入门实例
这个教程是介绍使用Mina搭建基础示例.这个教程内容是以创建一个时间服务器. 以下是这个教程需要准备的东西: MINA 2.0.7 Core JDK 1.5 或更高 SLF4J 1.3.0 或更高 L ...
- Apache Mina原理及典型例子分析
Apache Mina ,一个高性能 Java 异步并发网络通讯框架.利用 Mina 可以高效地完成以下任务: TCP/IP 和 UDP/IP 通讯 串口通讯 VM 间的管道通讯 SSL/TLS JX ...
- Apache Mina 2.x 框架+源码分析
源码下载 http://www.apache.org/dyn/closer.cgi/mina/mina/2.0.9/apache-mina-2.0.9-src.tar.gz 整体架构 核心过程(IoA ...
- Apache Mina开发手冊之四
Apache Mina开发手冊之四 作者:chszs,转载需注明. 博客主页:http://blog.csdn.net/chszs 一.Mina开发的主要步骤 1.创建一个实现了IoService接口 ...
- 网络通信框架Apache MINA
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...
- Apache Mina(二)
在mina的源码,整个框架最核心的几个包是 : org.apache.mina.core.service :IoService.IoProcessor.IoHandler.IoAcceptor.IoC ...
- Apache Mina入门实例
一.mina是啥 ApacheMINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序.它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的 ...
随机推荐
- 使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
在前面随笔<在Winform应用中增加通用的业务编码规则生成>,我介绍了基于Winform和WPF的一个通用的业务编码规则的管理功能,本篇随笔介绍基于后端Web API接口,实现快速的Vu ...
- Selenium基本使用、过检测
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service as ...
- cgroup的入门资料
近期在准备特性的设计文档,按照评审专家的建议,需要排查现有产品中算力资源比如CPU.内存的分配方案,确认现有的硬件款型是否具备充足的资源来启用本特性. 依据前辈提供的建议,检查了产品的部署脚本,发现当 ...
- java漏洞学习平台搭建
java漏洞平台搭建 项目地址 : https://github.com/j3ers3/Hello-Java-Sec 配置mvn 先配置一下mvn,下载后解压 proxychains wget htt ...
- Redis 使用的 10 个小技巧
Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路. 随之而来的一系列最佳实践,使得大多数人可以正确地 ...
- 关于腾讯地图geolocation.getLocation 经常定位失败,定位时间过长的解决方法
今天遇到个项目,腾讯地图定位出现问题,导致地图无法呈现出最近的目标 这是正常的效果,之前一直出现贵州等地点的信息,查看控制台的网络后,发现腾讯的定位失败,要么就是定位时间过长,要20S左右,但是换ED ...
- Midjourney 注册 12 步流程教学
原文: https://bysocket.com/midjourney-register/ 先推荐一个 PromptHero 中文官网 https://promptheroes.cn/ :Prompt ...
- MySQL进阶篇:详解存储引擎介绍和基本使用
1. MySQL进阶篇:第一章__一.一_存储引擎介绍和基本使用 1.1 MySQL体系结构 1). 连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类 ...
- 一文带你了解Web前端发展历程
摘要:自互联网行业发展以来,web前端不断发展变化着.在前人的基础上,后人有幸能够站在前人的肩膀上行走.前端的发展变化不仅是继承式的迭代,同时也是不断的变革和创造. 一.前端到底是个什么? 简单点说, ...
- 【API进阶之路】因为不会创建云服务器,我被实习生摆了一道
摘要:9个步骤通过API创建云服务器. 事情是这样的,公司成立了一个新项目,要给项目建官网,并搭建一个web服务器.按照我的习惯,搭建一个本地虚拟机就好了,部署简单方便还好配置,云服务器嘛,写了10年 ...