Apache Mina实例

SCI投稿流程全解析:从ADM、AE到EIC的角色与状态解读 学术出版流程是科研成果传播的关键环节,其核心在于高效的同行评审与编辑决策机制。这一系统通过分工明确的角色协作,确保稿件的学术质量与出版效率。在技术层面,现代投稿系统实现了流程的数字化管理,其中状态跟踪功能为作者提供了透明的进度反馈。从工程实践角度看,理解投稿状态背后的角色逻辑——如编辑部行政人员(ADM)的格式检查与流程调度、学术编辑(AE)的送审与决策建议、主编(EIC)的终审裁决——能显著提升稿件处理效率。这些角色共同构成了SCI期刊投稿的“三驾马车”,其协作模式直接体现在“With Editor”、“ 阅读详情

Apache MINA(Multipurpose Infrastructure for Network Applications)

官网http://mina.apache.org/

是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。   目前正在使用 MINA 的软件包括有:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia Flash Media RTMP)、ObjectRADIUS、Openfire 等等。

本文就介绍入门mina的入门,

参考文档http://mina.apache.org/mina-project/quick-start-guide.html

第一步、定义MinaTimeServer.java mina服务端

/**

 *

 */

package com.figo.onlineshop.test;

 

import java.io.IOException;

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.codec.ProtocolCodecFilter;

import org.apache.mina.filter.codec.textline.TextLineCodecFactory;

import org.apache.mina.filter.logging.LoggingFilter;

import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

 

/**

 * @author zhuzhifei

 *

 */

public class MinaTimeServer {

    private static final int PORT = 9123;

 

          /**

           * @param args

           */

          public static void main(String[] args) {

                   // TODO Auto-generated method stub

                   //定义socket接收器

                   IoAcceptor acceptor = new NioSocketAcceptor();

        //添加日志记录

        acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );

        //添加编码解码器

        acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));

        //添加处理器(用于接收数据后处理处理数据逻辑)

        acceptor.setHandler(  new TimeServerHandler() );

        //设置读取数据缓存单位byte

        acceptor.getSessionConfig().setReadBufferSize( 2048 );

        //设置多长时间后接收器开始空闲

        acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );

 

        try {

                  //绑定某个端口,作为数据入口

                            acceptor.bind( new InetSocketAddress(PORT) );

                   } catch (IOException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

 

 

          }

 

}

 
第二步、定义消息处理器TimeServerHandler.java

/**

 *

 */

package com.figo.onlineshop.test;

 

import java.util.Date;

 

import org.apache.mina.core.service.IoHandlerAdapter;

import org.apache.mina.core.session.IdleStatus;

import org.apache.mina.core.session.IoSession;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

/**

 * @author zhuzhifei

 *

 */

//必须继承IoHandlerAdapter

public class TimeServerHandler extends IoHandlerAdapter {

    private final Logger logger = LoggerFactory.getLogger(MinaTimeServer.class);

    //补抓异常

          @Override

          public void exceptionCaught(IoSession session, Throwable cause)

                            throws Exception {

                   // TODO Auto-generated method stub

                   super.exceptionCaught(session, cause);

          }

    //获取客户端消息后处理逻辑

          @Override

          public void messageReceived(IoSession session, Object message)

                             throws Exception {

                   // TODO Auto-generated method stub

                   super.messageReceived(session, message);

                   String str = message.toString();

        if( str.trim().equalsIgnoreCase("quit") ) {

            session.close(true);

            return;

        }

 

        Date date = new Date();

        session.write( "current time:"+date.toString() );//该消息将返回给客户端

        System.out.println("Message Received:"+str);

        logger.info(date.toString()+"Message Received:"+str);//日志没有输出why?

 

          }

    //发送消息

          @Override

          public void messageSent(IoSession session, Object message) throws Exception {

                   // TODO Auto-generated method stub

                   super.messageSent(session, message);

          }

    //当前会话关闭

          @Override

          public void sessionClosed(IoSession session) throws Exception {

                   // TODO Auto-generated method stub

                   super.sessionClosed(session);

          }

    //创建会话

          @Override

          public void sessionCreated(IoSession session) throws Exception {

                   // TODO Auto-generated method stub

                   super.sessionCreated(session);

          }

    //会话空闲

          @Override

          public void sessionIdle(IoSession session, IdleStatus status)

                            throws Exception {

                   // TODO Auto-generated method stub

                   super.sessionIdle(session, status);

                   System.out.println( "IDLE " + session.getIdleCount( status ));

          }

    //打开会话

          @Override

          public void sessionOpened(IoSession session) throws Exception {

                   // TODO Auto-generated method stub

                   super.sessionOpened(session);

          }

}

第三步、模拟客户端tcp调用

MinaTimeServer.java run as java Application后

C:\Documents and Settings\zhuzhifei>telnet 127.0.0.1 9123 连上服务器

客户端输入:abc后

服务端接收到:

2012-12-25 18:26:52 INFO  com.figo.onlineshop.test.MinaTimeServer - Tue Dec 25 18:26:52 CST 2012Message Received:abc

客户端显示:current time:Tue Dec 25 18:26:52 CST 2012

转自【http://www.open-open.com/lib/view/open1375802152718.html】


Apache Mina简单实例 NULL 博文链接:https://qianhao-1987.iteye.com/blog/1476125 立即下载

相关推荐

apache mina 简单示例

apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例

MINA官网教程

简介: Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。本文将介绍 Apache MINA 2 的基本概念和 API,包括 I/O 服务、I/O 会话、I/O 过滤器和 I/O 处理

唐僧打怪兽 1万+

apache mina 框架实例

apache mina 框架 实例 自定义协议包 自定义编码器 解码器 服务端 客户端

Apache-mina学习笔记,非常全都资料,附带大量实例

Apache Mina2 学习笔记             目录 引言. 3 一.    Mina入门. 3 第一步.下载使用的Jar包. 3 第二步.工程创建配置. 4 第三步.服务端程序. 4 第四步.使用telnet命令来测试服务端. 6 第五步.客户端程序. 9 第六步.长连接VS短连接. 11 第七步.入门程序0212 第八步.入门程序

有 prepare , No out 1万+

apache mina实例免费下载

apache mina实例免费下载,有很多实例代码简单易懂欢迎大家下载!

apache-mina例子

mina例子,服务端和客户端,MinaTimeServer是启动服务端,然后运行MinaClient就能看到结果了

mysql数据库转达梦数据库

/@KeySequence("iot_alarm_setting_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。@KeySequence("iot_alarm_setting_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。替换为你想要授予查询权限的用户名。如果你是数据库管理员或者有权限修改其他用户的权限,你可以使用以下语句来为指定用户授予查询。

qq_39927127的博客 679

KV Cache 详解:新手也能理解的 LLM 推理加速技巧

(Autoregressive)生成的,即每次生成一个 token,然后将其作为输入继续生成下一个 token。:如果序列太长,超过了 KV Cache 的存储限制,就需要丢弃最早的 tokens(类似滑动窗口)。时,每次只会生成一个新 token,然后再把这个 token 作为输入继续生成下一个 token。,只缓存计算过的 K,VK, V,每次只计算新 token 的 K,VK, V,从而提升推理效率。:如果输入的 prompt 发生变化,之前的 KV Cache 不能复用,必须重新计算。

Harry的博客 7351

DB2 9 应用开发(733 检验)认证指南,第 7 部分: Java 编程(3)

毗连数据库 概述 JDBC 是一个 Java API,Java 次序顺序可以经由过程它毗连关连数据库并实施 SQL 语句。为了使 Java 应用次序顺序可以与它的数据库住手通讯,DB2 要包括 JDBC 驱动次序顺序。 在本末节中,您将进修如何为应用次序顺序加载最适合的 JDBC 驱动次序顺序,以及如何毗连 DB2 数据库。 JDBC 驱动...

weixin_30659829的博客 151

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 452

【侯俊霞全网最全收集--PLC1200/200SMART(88+93课时) 第1章】

第1章:零基础快速入门西门子S7-1200

问就ycy的博客 2032

SQLServer 迁移到 MySQL 工具对比

如果仔细观察,可以发现上图中各个数据库的大小是不一致的,基本的判断是由于各种工具在映射数据表字段时,字段长度取值可能不能而引起的。以上四款软件中,最不推荐使用的是 Navicat Premium,主要原因是数据的完整性表现较差,转换后的数据不能立即用于生产环境,需要程序员仔细自行查找原因和分析。由于程序是基于 O/R mapping 编写,并且数据库中没有使用存储过程、用户函数等数据库功能,因此仅仅需要考虑的是数据库中的数据如何转换到新的 MySQL 数据库中。

m0_75148515的博客 129

ESP32S3 Korvo2V3四通道AEC配置实战:基于AFE的回声消除优化

本文详细介绍了在ESP32S3 Korvo2V3平台上配置四通道AEC(回声消除)的实战经验。通过AFE算法优化和硬件连接调试,实现高质量回声消除,显著提升智能音箱和会议设备的语音交互体验。重点解析了四通道配置、数据格式对齐和参数调优等关键技术要点。

elastic6hunter的博客 932

【国产化】spring boot项目 原oracle替换成达梦

spring boot 原oracle项目替换成达梦

Kirito___的博客 1082

GD32F470 DSP库移植避坑指南:从CMSIS版本冲突到AC6工程配置

本文详细解析了在GD32F470平台上移植CMSIS-DSP库的完整流程与关键避坑点。针对CMSIS版本冲突、AC6编译器下的浮点ABI配置、DSP库源文件添加等核心难题,提供了经过验证的解决方案,帮助开发者高效完成移植,确保硬件FPU正常工作并优化性能。

data3的博客 529

柑橘病虫害识别方案总结

1. 方案一 1.1 赛题背景 1.2 数据分析 1.3 模型设计 1.3.1 模型具体方案 1.3.2 模型设计 1.4 实验结果 1.5 总结与展望 2. 方案二 2.1 赛题介绍 2.2 数据分析 2.3 算法方案解析 2.3.1 检测模型 2.3.2 提升策略 2.4 优化思路 3. 方案三 3.1 数据分析 3.1.1 数据说明 3.2 技术展示 3.2.1 数据输入端 3.2.2 模型结构端 3.2.3 上下文信息 3.2.4 训练优化端 3.2.5 创新性分析 3.3 算法及系统思考.....

herosunly的博客 2万+

达梦数据库快速入门

博文介绍:达梦数据库是国产数据库,大家对它还是非常陌生的,但是随着国家大力推展信创产业,国产数据库将拥有自己的一片天地,下面我搬运了入门中常见的一些问题的链接,希望能给大家提供帮助 1.安装数据库软件 1.1. 根据cpu和操作系统获取的安装包 达梦产品常见问题,可参考达梦数据库不同产品 达梦产品自带一年的授权,授权限制数据库服务的使用,对客户端的使用没有影响,如果有正式授权可以参考更换key 数据库安装目录介绍,其中常用的主要是doc、bin、driver、tool目录,存放官方手册、可执行文件、驱动、客

qq_33965675的博客 1209

Kalibr 安装+制作采集的图片和IMU数据生成 .bag 文件 (坑最全,解决方法最简单,最详细哈哈)

方法一、Kalibr标定工具实现 开源代码连接:https://github.com/ethz-asl/kalibr 1.1 创建工作空间 ——下载程序——编译 mkdir -p ~/kalibr_workspace/src cd /kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git cd .. //返回上一级 catkin_make source devel/setup.bash ......

努力努力努力 6939

MySQL数据库迁移至达梦(DM8)数据库的思路

在数据库实际迁移过程中,由于达梦数据库不兼容的原因,可能会导致部分对象迁移失败或任务取消,就需要分析任务的执⾏⽇志、修复,重启DTS任务并执⾏,或⼿动执⾏修复后的SQL脚本。

duanyu368的博客 3254

YOLOv8改进 | 注意力篇 | YOLOv8引入EMAttention(EMA)注意力

具体来说,除了对全局信息进行编码以重新校准每个并行分支中的通道权重之外,还通过跨维度交互来进一步聚合两个并行分支的输出特征,以捕获像素级的成对关系。3. 跨空间学习:除了在每个并行子网络中建立局部的跨通道交互外,EMA模块还通过跨空间学习方法融合了两个并行子网络的输出特征图。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 894

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Apache MINA实战之 牛刀小试

本文链接:http://blog.youkuaiyun.com/kongxx/article/details/7520259 Apache的MINA是一个被用来构建高性能和高可伸缩性应用程序的网络应用框架,它提供了一套统一的建立在Java NIO之上的事件驱动的异步API。 对于MINA框架的了解,MINA官方的几篇文章是必须要看的,如下: * Application Architecture http://...

new is I 314

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Apache Mina使用示例

 1.import mina-core-2.0.0-RC1.jar slf4j-jdk14-1.5.9.RC1.jar slf4j-api-1.5.9.RC1.jar3个包。mina包可以到http://mina.apache.org/downloads.html中去下载,下载完后用mvn package命令编译mina-core目录下的文件就可以得到(必须安装了maven包)。slf4j的包可以

3752

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Apache MINA(网络应用程序框架)实例

Apache MINA实例、网络应用程序框架、NIO

JQ棣的博客 5万+

Apache Mina的最简单例子

apache mina的下载地址:[url]http://mina.apache.org/mina-project/downloads.html[/url] 1. 首先,要在classpath中配置以下的jar文件: mina-core-2.0.7.jar mina-example-2.0.7.jar slf4j-api-1.6.6.jar slf4j-log4j12-1.6.6.j...

种田好累 221
上一篇: Java工具类——发送GET/POST请求工具
下一篇: java.lang.OutOfMemoryError简介
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值