`

Apache Mina简单实例客户端篇

    博客分类:
  • Mina
阅读更多
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();
	}
	
}


分享到:
评论
8 楼 bluerose 2010-06-26  
请教个问题。
客户端怎么做到一次连接 多次发送呢。
注意 是客户端。
多谢
7 楼 sinye 2010-06-17  
youyang 写道
哥们,问一个问题。
我用你的这个程序,客户端接收不到服务器发送来的数据是怎么回事。

修改程序里的客户端ip为你的机器的ip地址,或者是127.0.0.1。然后再修改服务器端和客户端的端口,两者设置一致,应该没问题的!
6 楼 fjlyxx 2010-02-25  
服务端收不到消息 估计你客户端发送到消息没有按照服务端解码的要求来发 在这里就是没有 换行符
5 楼 WIN 2010-02-08  
youyang 写道
没错,但是也没有回。
留下你的E—MAIL,我把项目发给你,
你帮我看一下吧

你把附件下下来看吧
4 楼 youyang 2010-02-08  
没错,但是也没有回。
留下你的E—MAIL,我把项目发给你,
你帮我看一下吧
3 楼 WIN 2010-02-01  
youyang 写道
如果你在了,一定要给回复一下。
这个问题快搞死我了。

不可能的哈,我都是经过测试了的啊,发现什么错误没哦
2 楼 youyang 2010-02-01  
如果你在了,一定要给回复一下。
这个问题快搞死我了。
1 楼 youyang 2010-02-01  
哥们,问一个问题。
我用你的这个程序,客户端接收不到服务器发送来的数据是怎么回事。

相关推荐

    Apache Mina2服务器和客户端简单实例

    在本实例中,我们将探讨如何使用Apache Mina2构建一个简单的服务器和客户端。 首先,让我们了解一下Mina2的核心概念。Mina2基于Java NIO(Non-blocking I/O)库,提供了异步I/O操作,这意味着它不会因为等待数据而...

    Apache Mina简单实例

    在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的事件驱动模型,它允许开发者以非阻塞的方式处理I/O操作。这种模型在处理大量并发连接时效率很高,因为...

    apache mina实例免费下载

    MINA实例通常包含以下部分: 1. **Acceptor**:负责监听和接受新的连接请求。 2. **Session**:表示与客户端的连接,包含了与该连接相关的所有信息,如读写操作、会话属性等。 3. **Filter**:过滤器是MINA处理数据...

    Mina开发实例(服务端、客户端)DEMO

    总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...

    apache mina 框架实例

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP/IP协议的服务器和客户端。这个框架允许开发者以一种简单、高效的方式处理I/O操作,同时提供了丰富的功能,如多...

    mina2服务端客户端实例,保证能够正常运行

    标题中提到的"mina2服务端客户端实例"是指使用Apache MINA 2版本创建的一个工作示例,该示例包含了服务端和客户端的完整代码,旨在帮助开发者理解如何在实际项目中运用MINA进行网络通信。通过导入Eclipse这样的集成...

    Mina开发之客户端

    以下是一个简单的Mina客户端创建流程: 1. **初始化Bootstrap**: 创建一个Bootstrap实例,这是配置客户端的基础。 2. **设置配置项**: 包括选择I/O处理器(通常为NioSocketConnector),设置连接超时,添加自定义...

    Apache Mina帮助文档

    "Apache Mina chm pdf教程和帮助文档"提供了详尽的API参考和实例,涵盖了从基本概念到高级特性的各个方面,有助于开发者快速掌握Mina的使用方法。 **7. 社区支持** Apache Mina作为一个活跃的开源项目,拥有强大的...

    apache mina 学习笔记三(子项目FtpServer)

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,用于构建高性能、高可用性的网络应用程序。MINA 提供了一种简单而强大的API,开发者可以使用它来处理TCP/IP和UDP/IP协议,如...

    mina入门实例

    这就是一个基础的Mina入门实例,展示了如何使用Mina进行客户端-服务器间的通信。随着深入学习,你可以了解更多的Mina特性,如心跳机制、多线程处理、会话管理等,以构建更复杂、高效的网络应用。

    基于Apache Mina实现的TCP长连接和短连接实例

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个实例中,我们将深入探讨如何利用Apache Mina实现TCP的长连接和短连接。 首先,TCP(传输控制协议...

    Apache MINA 线程模型配置

    ### Apache MINA线程模型配置详解 #### 一、线程模型配置介绍 Apache MINA 是一个用于构建网络应用程序的高性能、高可靠性的框架。它提供了丰富的功能来简化网络编程,包括TCP/IP 和 UDP/IP 协议的支持。线程模型...

    Apache mina源代码框架解析

    在这个文档中,我们将简要分析Mina 2.0框架的源代码,并通过一个简单的时钟服务器示例来了解其工作原理。 首先,我们来看`MinaTimeServer`类。这个类是Mina服务器的主入口点,它创建了一个`NioSocketAcceptor`实例...

    Android-基于ApacheMINA进行封装实现AndroidAPP作为服务器客户端进行通讯

    本项目“Android-基于Apache MINA进行封装实现Android APP作为服务器客户端进行通讯”正是利用MINA库来构建Android应用的网络通信功能。 Apache MINA的核心优势在于其非阻塞I/O(Non-blocking I/O)模型,这种模型...

    mina 同步客户端,异步客户端

    Session是MINA的核心概念,它代表了服务端与客户端之间的一个连接实例。服务端通过定义Filter Chain(过滤器链)来处理接收到的数据,这些过滤器可以进行数据编码、解码、安全验证等多种任务。 2. **同步客户端**:...

    MINA客户端与服务端通信实例

    本实例将探讨如何使用MINA实现客户端与服务端的通信。 MINA框架是Apache软件基金会的一个项目,它提供了基于NIO(Non-blocking I/O)的网络编程接口。NIO是一种在Java中实现高并发、低延迟I/O操作的方法,特别适合...

    mina_tcp客户端jar.zip

    在本篇中,我们将深入探讨如何利用MINA框架来构建一个TCP客户端,并实现长连接。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过三次握手建立连接,确保数据的正确性与...

    ApacheMINA传递对象实例[借鉴].pdf

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个用于创建高性能、异步网络应用程序的Java框架。它简化了网络编程,特别是在TCP/IP和UDP协议上的应用,例如开发服务器或客户端通信系统。...

Global site tag (gtag.js) - Google Analytics