public class MyServer {
public static void main(String[] args){
//IoAcceptor acceptor = new NioSocketAcceptor();
SocketAcceptor acceptor = new NioSocketAcceptor();
acceptor.getSessionConfig().setReadBufferSize(2048*2);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
/*acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("utf-8"),LineDelimiter.WINDOWS.getValue(),
LineDelimiter.WINDOWS.getValue())
));*/
//acceptor.setHandler(new MyIoHandle());
acceptor.setHandler(new Flash843());
try {
acceptor.bind(new InetSocketAddress(8899));
//acceptor.bind( new InetSocketAddress(843));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class Flash843 extends IoHandlerAdapter {
List list = new ArrayList();
/**
* 对消息进行处理
**/
public void messageReceived(IoSession session, Object message) {
try {
IoBuffer get = (IoBuffer)message;
System.out.println("Rec:" + get.getHexDump());
String s = new String(get.array());
//System.out.println("s=="+s);
if (s.indexOf("<policy-file-request/>") != -1)
{
System.out.println("========1111======="+session.getId());
String res = "<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>";
byte[] reps = res.getBytes("UTF-8");
IoBuffer wb = IoBuffer.allocate(reps.length+1);
wb.put(reps);
wb.put((byte)0x0);
wb.flip();
session.write(wb);
} else{
String res="分布式数据库系统的优点";
System.out.println("========222======="+ message.toString());
//for(int i=0;i<5;i++){
System.out.println("session=="+session);
byte[] reps = res.getBytes();
IoBuffer wb = IoBuffer.allocate(reps.length+1);
wb.put(reps);
wb.put((byte)0x0);
wb.flip();
wb.clear();
session.write(wb);
System.out.println("===afert====");
list.add(session);
//test();
new T().start();
//}
}
}
catch(Exception e){
e.printStackTrace();
}
}
class T extends Thread{
public void run(){
System.out.println("list==="+list.size());
try {
Thread.sleep(5000);
System.out.println("list333==="+list.size());
//Thread.sleep(5000);
if(list.size()>0){
System.out.println("list(0)=="+list.get(0));
IoSession session=(IoSession)list.get(0);
System.out.println("session==="+session.getId());
String res="Hi,sdfafsdf?";
byte[] reps = res.getBytes("UTF-8");
IoBuffer wb = IoBuffer.allocate(reps.length+1);
wb.put(reps);
wb.put((byte)0x0);
wb.flip();
session.write(wb);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
在"apache mina 简单示例"中,我们通常会涉及以下几个关键概念: 1. **项目设置**:首先,你需要在你的开发环境中集成Apache Mina库。这可以通过在Maven或Gradle的依赖管理中添加Mina的相关依赖来实现。例如,在...
标题中的"mina简单示例"指的是使用Apache Mina框架构建一个简单的客户端和服务端的程序。在Java开发中,Mina提供了一种高效的方式来处理网络连接和数据传输,特别适合于构建大型、复杂的网络服务。 描述中的"mina...
在Mina 1.1.7版本中,提供的示例源码是学习和理解Mina框架工作原理及其实现各种网络协议的重要资源。这个压缩包"apache.mina.example"包含了一系列的示例项目,可以帮助开发者快速上手并深入理解Mina。 1. **Mina...
在本示例中,我们关注的是"Mina客户端",即如何使用Mina库创建一个简单的客户端应用。 标题中的"mina客户端简单代码示例"意味着我们将探讨如何使用Mina框架编写一个基础的客户端程序,该程序能够连接到服务器并发送...
本示例将介绍如何使用Mina实现一个简单的服务器端代码,并运行MinaTimeServer。 在Java中,Mina提供了一种事件驱动、异步编程模型,使得开发者可以更高效地处理网络通信。其核心组件包括Acceptor(监听器)、...
Apache Mina是一个高度可扩展的网络通信框架,它为Java应用程序提供了简单的API来处理TCP/IP、UDP和其他协议的网络通信。在这个"Mina客户端示例"中,我们主要关注如何利用Mina框架构建一个客户端,以及其中涉及到的...
mina简单示例,Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速...
在本案例中,我们将聚焦于MINA如何应用于TCP连接,创建一个简单的客户端。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,确保数据的有序、无损传输。MINA作为一款开源框架,为开发者...
这个例子展示了如何创建一个简单的服务器和客户端,并使用MINA进行数据传输。 2. **ChatDemo**:聊天室示例,允许多个客户端连接并相互发送消息。此示例演示了MINA如何处理多用户并发场景。 3. **AsyncEchoDemo**...
标题中的“mina简单通信需要的包”指的是Apache Mina框架,这是一个用于构建高性能、异步网络应用程序的Java框架。在本文中,我们将深入探讨Mina的核心概念和它在通信中的应用,以及与之相关的库SLF4J。 Apache ...
2. Mina简单入门 开发MINA应用通常涉及以下步骤: - 下载MINA库:访问官网http://mina.apache.org/获取最新版本的MINA库。 - 创建项目:在IDE中创建新项目,并将MINA核心库mina-core添加至项目依赖。 - 编写...
标题"Mina简单小例"可能是指Apache Mina框架的一个简单示例。Apache Mina是一个用Java编写的网络通信框架,它简化了创建高性能、高可用性的网络应用。在这个例子中,我们可能会看到如何使用Mina来建立服务器和客户端...
总结来说,这个"mina 实现简单通讯"项目展示了一个基于Apache MINA的网络通信示例,涵盖了服务端和客户端的创建、自定义的协议编解码器、以及必要的网络配置。这为学习和理解MINA框架提供了一个基础平台,并且可以在...
通过阅读和实践这个简单的Apache Mina示例,你可以了解其基本的工作原理,进一步深入学习,将有助于构建高效、可扩展的网络服务。此外,标签中的“源码”提示我们,可以查看Apache Mina的源代码来学习其内部实现,这...
3. 开发复杂度:Mina NIO需要对Java NIO有深入理解,而普通Socket相对简单,学习曲线较平缓。 4. 扩展性:Mina提供了丰富的功能,如协议编码解码、事件驱动模型等,使其更容易扩展和维护。 5. 社区支持:Mina作为一...
**Mina自定义协议简单实现** Apache Mina(Minimum Asynchronous Network)是一个开源的网络通信框架,它为Java开发者提供了一种高效、灵活且可扩展的框架,用于构建高性能的网络应用程序,如服务器和客户端应用。...
在这个"Mina实例 包含jar包"的压缩包中,我们预计会找到运行Mina示例所需的所有依赖库。 Mina的核心设计思想是提供一个可扩展的框架,允许开发者创建各种类型的网络服务,如TCP/IP协议的应用(如HTTP、FTP)、UDP...
Mina(全称“MINA: Minimalistic Application Networking API”)是Apache软件基金会的一个开源项目,它为开发者提供了一种简单而高效的方式来构建高性能、跨平台的网络应用。Mina的核心优势在于它的事件驱动和异步I...
"基于MINA构建简单高性能的NIO应用.pdf" 这个标题指出,文档主要讨论如何使用MINA框架来构建一个基于非阻塞I/O (Non-blocking I/O, NIO) 的应用程序。MINA是一个开源的Java框架,专为网络通信设计,特别是高性能、高...
1. **基于MINA框架快速开发网络应用程序(转载).html**:这可能是一个教程或指南,教读者如何利用MINA快速构建网络应用,可能包含基本概念、设置步骤和简单示例。 2. **Apache_Mina_Server_2.0中文参考手册V1.0.pdf*...