第一步:创建ArenaSessionHandle
package com.war.socket.arena;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.json.JSONObject;
import com.war.constant.ArenaSocketConstant;
public class ArenaSessionHandle extends IoHandlerAdapter{
@Override
public void sessionCreated(IoSession session) throws Exception {
}
@Override
public void sessionOpened(IoSession session) throws Exception {
}
@Override
public void sessionClosed(IoSession session) throws Exception {
session.close();
ArenaSocketService.removeArenaBattleSession(session);
}
@Override
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
session.close();
ArenaSocketService.removeArenaBattleSession(session);
}
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
// 处理业务逻辑
}
@Override
public void messageSent(IoSession session, Object message) throws Exception {
}
@Override
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
}
}
第二步:创建服务端 ArenaSocketServer
package com.war.socket.arena;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.log4j.Logger;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import com.war.common.ResourceBundleService;
public class ArenaSocketServer {
private final static int PORT = 12345;
final IoAcceptor acceptor = new NioSocketAcceptor();
private static Logger logger = Logger.getLogger(ArenaSocketServer.class);
public ArenaSocketServer() {
// 注册
acceptor.setHandler(new ArenaSessionHandle());
// 过滤器
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
try {
// 端口绑定
acceptor.bind(new InetSocketAddress(PORT));
System.out.println("Arena Socket Server Started...");
} catch (IOException e) {
logger.error(ResourceBundleService.getString("txt.exception"), e);
}
}
public void shutdown() {
acceptor.unbind();
acceptor.dispose();
}
}
分享到:
相关推荐
通过深入学习和实践这个Apache Mina入门Demo,你将掌握如何利用Mina构建网络应用,并了解其核心特性和工作原理,这对于从事Java网络编程或者需要处理大规模并发连接的开发者来说是非常有价值的。
在“Apache Mina入门(完成版)”这份资料中,你将了解到以下关键知识点: 1. **Mina架构**:Mina的核心设计理念是事件驱动和异步通信,它采用了I/O多路复用技术,如Java NIO(非阻塞I/O),以提高服务端处理大量...
Apache Mina是一个开源项目,由Apache软件基金会维护,它是一个网络通信框架,专注于提供高性能、...对于初学者,阅读《Apache Mina入门(完成版)》PDF文档将是一个很好的起点,深入学习Mina的内部机制和实践技巧。
总之,Apache Mina为Java开发者提供了一个强大、灵活的网络通信框架,通过本文档中的"Apache Mina入门(完成版).pdf",你可以系统性地学习如何使用它来构建高效稳定的网络应用。通过实践和理解,你将能够熟练地驾驭...
### Apache Mina 入门详解 #### 一、Mina简介与应用场景 ##### Mina概述 Mina(**Mini Network Application**)是一个简洁且易于使用的Java网络应用开发框架,主要针对TCP/IP通信进行优化设计。它能够帮助开发者...
入门Apache Mina,你需要了解以下几个关键概念: 1. **事件驱动模型**:Mina采用事件驱动模型,当网络事件(如连接建立、数据接收、连接关闭等)发生时,会触发相应的回调方法。 2. **Filter Chain**:通过Filter ...
Apache Mina 框架是一个强大的网络通信应用框架,它主要针对基于TCP/IP和UDP/IP的协议栈,同时也支持Java对象序列化和其他通信方式。Mina 的核心设计目标是帮助开发者快速构建高性能、高可扩展性的网络应用。它采用...
本资源包含两个 pdf 文档,一本根据官方最新文档 (http://mina.apache.org/mina-project/userguide/user-guide-toc.html) 整理的 mina_2.0_user_guide_en.pdf,一个中文翻译的 mina_2.0_user_guide_cn.pdf。...
这就是一个基础的Mina入门实例,展示了如何使用Mina进行客户端-服务器间的通信。随着深入学习,你可以了解更多的Mina特性,如心跳机制、多线程处理、会话管理等,以构建更复杂、高效的网络应用。
了解以上知识点是掌握Apache MINA的基础,通过提供的学习资料,如《Mina2.0学习笔记》、《Apache MINA入门基础》和《Apache MINA Server 2.0中文参考手册》等,可以深入学习MINA的API用法、设计原理和最佳实践。...
### Apache Mina 详解 ...Apache Mina 是一个强大且灵活的网络通信框架,非常适合初学者入门使用。通过本篇文档的学习,希望读者能够对 Mina 的基本原理和使用方法有一个全面的认识,并能够在实际项目中灵活运用。
本入门例子将带你了解如何使用MINA进行基本的网络通信应用开发。 首先,MINA的核心概念包括`Session`、`Filter`和`Handler`。`Session`代表一个网络连接,它是数据传输的通道;`Filter`是处理`Session`中数据的...
3. **Apache MINA 快速入门 lj棒.txt**:这可能是一个快速入门指南,帮助开发者快速理解MINA的基本概念和实现一个简单的网络服务器。 4. **SmartFoxServer 是专门为Adobe Flash设计的跨平台socket服务器**:...
mina是一种高效的互联网网络通信架构,此资料为入门基础。
"示例,我们可以快速入门,了解如何创建一个简单的MINA服务端并处理客户端连接。这个过程涉及到了网络编程的基本概念,如连接建立、数据交换和连接关闭,以及MINA特有的异步事件驱动模型。通过学习和实践这个示例,...
- 通过Apache_Mina入门资料,我们可以学习如何创建服务器和客户端,设置IoFilter和IoHandler,以及如何处理网络事件。 - Apache MINA Server 2.0中文参考手册提供了详细的技术指南,包括API的使用、配置示例和最佳...