`
luozhong915127
  • 浏览: 189183 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论
阅读更多

    上一篇博客写的是怎样运用Mina的一些Java包来写通信的优化应用。下面是写的是客服端和服务端的代码:

/**
 * 创建客户端处理器
 * 
 * @author luozhong
 * 
 */

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;

public class Client_MinaTest {

	public static void main(String args[]) {
		// Create TCP/IP connector.
		NioSocketConnector connector = new NioSocketConnector();

		// 创建接收数据的过滤器
		DefaultIoFilterChainBuilder chain = connector.getFilterChain();

		// 设定这个过滤器将一行一行(/r/n)的读取数据
		chain.addLast("myChin", new ProtocolCodecFilter(
				new TextLineCodecFactory()));

		// 设定服务器端的消息处理器:一个SamplMinaServerHandler对象,
		connector.setHandler(new ExceptionClient_mina());
		// Set connect timeout.

		connector.setConnectTimeout(30);

		// 连结到服务器:

		ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",
				8888));
		// Wait for the connection attempt to be finished.
		cf.awaitUninterruptibly();
		cf.getSession().getCloseFuture().awaitUninterruptibly();
		connector.dispose();
	}
}





/**
 * 创建客户端处理器
 * 
 * @author luozhong
 * 
 */
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;

public class ExceptionClient_mina extends IoHandlerAdapter {

	// 客服端连接
	public void sessionOpened(IoSession session) throws Exception {

		System.out.println("进入链接:" + session.getRemoteAddress());

		session.write("I am coming!");

	}

	// 当一个客户端关闭时
	@Override
	public void sessionClosed(IoSession session) {
		System.out.println("one Clinet Disconnect !");
	}

	// 当客户端发送的消息到达时:
	@Override
	public void messageReceived(IoSession session, Object message)
			throws Exception {
		// 我们己设定了服务器解析消息的规则是一行一行读取,这里就可转为String:
		String s = (String) message;
		// Write the received data back to remote peer
		System.out.println("服务器发来的收到消息: " + s);
		// 测试将消息回送给客户端
		session.write(s);
	}

}

 

/**
 * Mina服务端测试
 * @author luozhong
 *
 */
import java.net.InetSocketAddress;

import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
public class MinaServerTest {


	public static void main(String[] args) throws IOException {
		
	//创建一个非阻塞的Server和Socket,用NIO	
     SocketAcceptor acceptor=new NioSocketAcceptor();
     
     //创建接收数据的过滤器
     
     DefaultIoFilterChainBuilder filter=acceptor.getFilterChain();
     
     //设定过滤器一行一行的读取数据
     
     filter.addLast("myMina", new ProtocolCodecFilter(new TextLineCodecFactory()));
     
     //设定服务器端的消息处理器:SamplMinaServerHandler对象
     
     
     acceptor.setHandler(new ExceptionMiNa());

     
     //服务器绑定的端口
     
     int  port=8888;
     //绑定端口,启动服务器
     
     acceptor.bind(new InetSocketAddress(port));
     
     System.out.println("Mina Server is Listing on:= " + port);
     
	}
	
	

}

/**
 * 自定义消息处理器
 * 
 * @author luozhong
 *
 */
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;

public class ExceptionMiNa extends IoHandlerAdapter {
	
	private int count;

	// 客服端进入连接时

	public void sessionOpend(IoSession session) {
		System.out.println("进入连接:" + session.getRemoteAddress());
	}
   
	//当一个客服端关闭时
	public void sessionClosed(IoSession session){
		System.out.println("关闭连接");
	}
	
	//当客服端发送的消息到达时
	public  void  ReceivedMsg(IoSession session,Object msg){
		
		//定规则一行一行读取,转为字符串
		
		String str=(String)msg;
		
		System.out.println("受到客户发来的信息:"+str);
		
		//测试将信息回送给客户机
		
		session.write(str+count);
		
		count++;
		
	}	
}

 

 

0
0
分享到:
评论

相关推荐

    Mina 框架源码解析-构建简单通信程序

    《Mina 框架源码解析 - 构建简单通信程序》 Mina(Minimal Asynchronous Network)是一个用于构建高性能、高可扩展性的网络应用程序的框架,它为开发者提供了低级的网络通信抽象,使其能够专注于业务逻辑,而不是...

    MINA 2.0.9源码

    通过阅读MINA 2.0.9的源码,你可以了解如何实现高效的网络通信,包括事件驱动的设计模式、多线程处理、数据包的拆分和组合,以及如何利用过滤器链实现复杂的功能。此外,源码分析还能帮助你掌握如何自定义Filter和...

    Mina2源码分析

    ### Mina2源码分析——核心模块解析 #### 概述 Mina2是一个高性能、可扩展的网络应用框架,支持多种传输协议如TCP、UDP等,并提供了丰富的API供开发者使用。本文旨在深入剖析Mina2的核心部分,帮助读者更好地理解和...

    Java mina2源码

    此外,对于Java开发者来说,熟悉Mina2源码有助于理解其他类似的网络通信框架,比如Netty,因为它们都基于相似的设计理念和架构。学习Mina2不仅可以提升专业技能,还能为将来的工作和项目带来更大的灵活性和效率。

    apache-mina源码

    2. **Filter Chain**:MINA采用过滤器链模式来处理网络通信。每个过滤器都可以执行特定的处理任务,如数据编码解码、安全性检查等。过滤器之间通过IoHandler接口交互,形成一个可扩展的处理流程。 3. **Transport ...

    mina框架源码及jar包

    总之,Apache Mina是一个强大的网络通信框架,通过理解和利用其源码及提供的jar包,开发者可以构建出高效、可扩展的网络应用。在实际项目中,结合Mina的特性,我们可以解决许多网络编程的挑战,提升系统的性能和稳定...

    JAVA mina 框架源码

    通过对Mina源码的学习,开发者不仅能理解其设计理念,还能掌握如何优化网络通信应用,提高系统的稳定性和性能。此外,学习Mina也能帮助开发者更好地理解Java NIO和网络编程的底层原理,对于提升专业技能非常有帮助。

    MINA源码分析,内涵类的讲解

    MINA的目标是让开发者能够专注于应用层的逻辑,而无需关心网络通信的底层细节。在这个“MINA源码分析,内涵类的讲解”中,我们将深入探讨MINA的核心组件和设计模式,以便更好地理解和利用这个强大的框架。 首先,...

    Mina 1.1.7 示例源码(apache.mina.example)

    这个示例集合是为了学习和交流而准备的,开发者可以通过分析源码了解Mina如何处理网络通信,如何构建过滤器链,以及如何实现自定义的协议编码解码器。同时,这些示例也提供了实际操作的机会,便于开发者在遇到问题...

    mina 源码

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,特别是对于基于TCP和UDP的通信。MINA提供了一种高级的、高性能的、异步事件驱动的网络...

    Mina2.0框架源码剖析

    通过深入分析Mina2.0的源码,我们可以了解到其内部的事件驱动模型、网络通信机制以及如何通过过滤器和处理器来处理网络请求。这有助于我们更好地理解和利用Mina框架来开发高并发、高性能的网络应用。

    mina通信服务器端客户端源码.rar

    代码利用mina框架实现了服务器端和客户端,客户端的登录请求、客户端向服务器端请求图片文件的功能。代码分为服务端和客户端,开发环境eclipse。服务器代码可在web项目中使用,客户端代码可以在Android开发时使用,...

    基于MINA2实现的UDP双向通信源码

    本源码是《NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战》一文的服务端实现(MINA2版),详见:http://www.52im.net/thread-378-1-1.html

    Mina源码解析

    通过对Mina源码的深入解析,开发者不仅可以理解其设计理念,还能学习到如何高效地处理网络通信问题,提升自己的网络编程技能。同时,Mina的模块化设计和丰富的功能,使其成为开发复杂网络服务的有力工具。

    mina mmorpg服务端源码

    《mina mmorpg服务端源码...通过对"mina mmorpg服务端源码"的深入学习和研究,开发者不仅可以掌握网络通信和游戏服务器开发的关键技术,还能提升对大规模分布式系统设计的理解,为构建自己的游戏服务端打下坚实基础。

    MINA框架源码

    从github上下载的mina框架源码 Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便 apache mina apache mina...

    Mina 2.0快速入门与源码解析

    Mina 2.0 是一个基于Java NIO技术的高效、可伸缩的网络通信框架,广泛应用于服务器端开发。Mina 2.0 的设计目标是为开发者提供一个易于使用的API,使得开发者能够快速构建高性能的网络应用。 **1.1 Mina 2.0快速...

    apache下的mina框架的源码

    MINA的设计目标是为开发者提供一个通用的基础设施,使得他们能够专注于业务逻辑,而无需关心底层网络通信的复杂性。 在深入分析MINA框架源码之前,我们需要理解几个核心概念: 1. **过滤器(Filter)**:MINA采用...

    Mina2.0框架源码剖析.pdf

    Mina2.0框架源码剖析 Mina2.0是一个基于Java的网络应用框架,提供了一个简洁、灵活的API,帮助开发者快速构建高性能的网络应用程序。下面是Mina2.0框架源码剖析的相关知识点: 一、Mina2.0框架概述 Mina2.0是一个...

    mina源码+例子mina-2.0.0-M6.zip

    3. **编写简单的应用**:从例子入手,创建一个简单的MINA服务器和客户端,理解它们之间的通信机制。 4. **实现自定义过滤器**:根据需求,编写自定义的过滤器,以实现特定的数据处理功能。 5. **性能调优**:了解...

Global site tag (gtag.js) - Google Analytics