package com.heming.apache.mina.samplesclient;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
/**
* 消息处理类
* @author 何明
*
*/
public class SamplMinaClientHander extends IoHandlerAdapter {
@Override
public void exceptionCaught(IoSession arg0, Throwable arg1)
throws Exception {
// TODO Auto-generated method stub
}
/**
* 当客户端接受到消息时
*/
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
//我们已设定了服务器的消息规则是一行一行读取,这里就可以转为String:
String s = (String)message;
//Writer the received data back to remote peer
System.out.println("服务器发来的收到消息: " + s);
//测试将消息回送给客户端
session.write(s);
}
@Override
public void messageSent(IoSession arg0, Object arg1) throws Exception {
// TODO Auto-generated method stub
}
/**
* 当一个客户端被关闭时
*/
@Override
public void sessionClosed(IoSession session) throws Exception {
System.out.println("one client Disconnect");
}
@Override
public void sessionCreated(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception {
// TODO Auto-generated method stub
}
/**
* 当一个客户端连接进入时
*/
@Override
public void sessionOpened(IoSession session) throws Exception {
System.out.println("incomming client:" + session.getRemoteAddress());
session.write("我来啦");
}
}
package com.heming.apache.mina.samplesclient;
import java.net.InetSocketAddress;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
/**
* 启动客户端
* @author 何明
*
*/
public class MainClient {
public static void main(String []args)throws Exception{
//Create TCP/IP connection
NioSocketConnector connector = new NioSocketConnector();
//创建接受数据的过滤器
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
//设定这个过滤器将一行一行(/r/n)的读取数据
chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory()));
//服务器的消息处理器:一个SamplMinaServerHander对象
connector.setHandler(new SamplMinaClientHander());
//set connect timeout
connector.setConnectTimeout(30);
//连接到服务器:
ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",8899));
//Wait for the connection attempt to be finished.
cf.awaitUninterruptibly();
cf.getSession().getCloseFuture().awaitUninterruptibly();
connector.dispose();
}
}
分享到:
相关推荐
在本实例中,我们将探讨如何使用Apache Mina2构建一个简单的服务器和客户端。 首先,让我们了解一下Mina2的核心概念。Mina2基于Java NIO(Non-blocking I/O)库,提供了异步I/O操作,这意味着它不会因为等待数据而...
在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的事件驱动模型,它允许开发者以非阻塞的方式处理I/O操作。这种模型在处理大量并发连接时效率很高,因为...
MINA实例通常包含以下部分: 1. **Acceptor**:负责监听和接受新的连接请求。 2. **Session**:表示与客户端的连接,包含了与该连接相关的所有信息,如读写操作、会话属性等。 3. **Filter**:过滤器是MINA处理数据...
总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...
Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP/IP协议的服务器和客户端。这个框架允许开发者以一种简单、高效的方式处理I/O操作,同时提供了丰富的功能,如多...
标题中提到的"mina2服务端客户端实例"是指使用Apache MINA 2版本创建的一个工作示例,该示例包含了服务端和客户端的完整代码,旨在帮助开发者理解如何在实际项目中运用MINA进行网络通信。通过导入Eclipse这样的集成...
以下是一个简单的Mina客户端创建流程: 1. **初始化Bootstrap**: 创建一个Bootstrap实例,这是配置客户端的基础。 2. **设置配置项**: 包括选择I/O处理器(通常为NioSocketConnector),设置连接超时,添加自定义...
"Apache Mina chm pdf教程和帮助文档"提供了详尽的API参考和实例,涵盖了从基本概念到高级特性的各个方面,有助于开发者快速掌握Mina的使用方法。 **7. 社区支持** Apache Mina作为一个活跃的开源项目,拥有强大的...
Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,用于构建高性能、高可用性的网络应用程序。MINA 提供了一种简单而强大的API,开发者可以使用它来处理TCP/IP和UDP/IP协议,如...
这就是一个基础的Mina入门实例,展示了如何使用Mina进行客户端-服务器间的通信。随着深入学习,你可以了解更多的Mina特性,如心跳机制、多线程处理、会话管理等,以构建更复杂、高效的网络应用。
Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个实例中,我们将深入探讨如何利用Apache Mina实现TCP的长连接和短连接。 首先,TCP(传输控制协议...
### Apache MINA线程模型配置详解 #### 一、线程模型配置介绍 Apache MINA 是一个用于构建网络应用程序的高性能、高可靠性的框架。它提供了丰富的功能来简化网络编程,包括TCP/IP 和 UDP/IP 协议的支持。线程模型...
在这个文档中,我们将简要分析Mina 2.0框架的源代码,并通过一个简单的时钟服务器示例来了解其工作原理。 首先,我们来看`MinaTimeServer`类。这个类是Mina服务器的主入口点,它创建了一个`NioSocketAcceptor`实例...
本项目“Android-基于Apache MINA进行封装实现Android APP作为服务器客户端进行通讯”正是利用MINA库来构建Android应用的网络通信功能。 Apache MINA的核心优势在于其非阻塞I/O(Non-blocking I/O)模型,这种模型...
Session是MINA的核心概念,它代表了服务端与客户端之间的一个连接实例。服务端通过定义Filter Chain(过滤器链)来处理接收到的数据,这些过滤器可以进行数据编码、解码、安全验证等多种任务。 2. **同步客户端**:...
本实例将探讨如何使用MINA实现客户端与服务端的通信。 MINA框架是Apache软件基金会的一个项目,它提供了基于NIO(Non-blocking I/O)的网络编程接口。NIO是一种在Java中实现高并发、低延迟I/O操作的方法,特别适合...
在本篇中,我们将深入探讨如何利用MINA框架来构建一个TCP客户端,并实现长连接。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过三次握手建立连接,确保数据的正确性与...
Apache MINA(Multipurpose Infrastructure for Network Applications)是一个用于创建高性能、异步网络应用程序的Java框架。它简化了网络编程,特别是在TCP/IP和UDP协议上的应用,例如开发服务器或客户端通信系统。...