`
peterwanghao
  • 浏览: 128532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于Apache Mina实现的UDP服务端

 
阅读更多

Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。

本文介绍了如何使用Apache Mina开发UDP服务端程序。

public class UdpServer {
	private static final long serialVersionUID = 1L;

	public static final int PORT = 8;

	public UdpServer() throws IOException {

		NioDatagramAcceptor acceptor = new NioDatagramAcceptor();
		acceptor.setHandler(new UdpServerHandler(this));

		Executor threadPool = Executors.newCachedThreadPool();
		DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
		chain.addLast("logger", new LoggingFilter());
		chain.addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
		chain.addLast("threadPool", new ExecutorFilter(threadPool));

		DatagramSessionConfig dcfg = acceptor.getSessionConfig();
		dcfg.setReadBufferSize(4096);// 设置接收最大字节默认2048
		dcfg.setMaxReadBufferSize(65536);
		dcfg.setReceiveBufferSize(1024);// 设置输入缓冲区的大小
		dcfg.setSendBufferSize(1024);// 设置输出缓冲区的大小
		dcfg.setReuseAddress(true);// 设置每一个非主监听连接的端口可以重用

		acceptor.bind(new InetSocketAddress(PORT));
		System.out.println("UDPServer listening on port " + PORT);
	}

	public static void main(String[] args) throws IOException {
		new UdpServer();
	}
}
public class UdpServerHandler extends IoHandlerAdapter {

	private UdpServer server;

	public UdpServerHandler(UdpServer server) {
		this.server = server;
	}

	@Override
	public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
		cause.printStackTrace();
		session.close(true);
	}

	@Override
	public void messageReceived(IoSession session, Object message) throws Exception {

		String expression = message.toString();
		System.out.println("[" + expression + "]");

	}

	@Override
	public void sessionClosed(IoSession session) throws Exception {
		System.out.println("Session closed...");

	}

	@Override
	public void sessionCreated(IoSession session) throws Exception {

		System.out.println("Session created...");

		SocketAddress remoteAddress = session.getRemoteAddress();
		System.out.println(remoteAddress);
	}

	@Override
	public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
		System.out.println("Session idle...");
	}

	@Override
	public void sessionOpened(IoSession session) throws Exception {
		System.out.println("Session Opened...");
		SocketAddress remoteAddress = session.getRemoteAddress();
		System.out.println(remoteAddress);
	}
}


分享到:
评论

相关推荐

    服务端基于MINA2的UDP双向通信Demo演示(MINA2服务端)

    “服务端基于MINA2的UDP双向通信Demo演示(MINA2服务端)” 这个标题表明这是一个使用MINA2框架在服务端实现的UDP(User Datagram Protocol)双向通信的示例代码。MINA2是一个开源的Java网络应用程序框架,它简化了...

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

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

    服务端基于MINA2的UDP双向通信Demo演示(Java客户端)

    标题中的“服务端基于MINA2的UDP双向通信Demo演示(Java客户端)”是指使用Apache MINA框架在Java中实现的UDP(用户数据报协议)的双向通信示例。MINA是一个高性能、异步的网络应用程序框架,常用于构建网络服务,如...

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

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

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

    Apache Mina2是一个高度可扩展且高性能的网络通信框架,主要设计用于简化开发网络应用,如TCP/IP和UDP协议的服务端和客户端。它提供了一种事件驱动、非阻塞I/O模型,使得开发者能够更专注于业务逻辑,而不是底层的...

    详解spring集成mina实现服务端主动推送(包含心跳检测)

    Spring集成Mina实现服务端主动推送(包含心跳检测) 本篇文章主要介绍了Spring集成Mina实现服务端主动推送(包含心跳检测),具有一定的参考价值,以下是对该知识点的详细解释和总结。 一、Spring集成Mina的配置 ...

    Apache Mina帮助文档

    Apache Mina是一个高度可扩展的网络通信框架,主要用于构建高性能、高效率的服务端应用程序。它提供了事件驱动、异步I/O处理模型,使得开发者能够更专注于业务逻辑,而不是底层网络编程的复杂性。Mina主要应用于Java...

    android mina 即时通讯 服务端客户端代码

    本文将深入探讨如何利用Apache Mina框架在Android平台上实现即时通讯服务端和客户端的构建。Apache Mina是一个网络通信应用框架,它简化了网络编程,使得开发者可以专注于业务逻辑,而不是底层的网络协议实现。 ...

    mina_tcp服务端需要jar包.zip

    mina_tcp服务端需要jar包.zip这个压缩包是针对Apache MINA框架实现TCP长连接服务端的一个资源集合。Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序...

    Apache mina2学习笔记DEMO

    MINA 提供了一套高级的网络通信抽象层,简化了开发过程,特别是对于处理TCP/IP和UDP/IP协议栈的应用。MINA的核心概念是事件驱动和非阻塞I/O,这使得它在处理大量并发连接时表现出色。 在这个"Apache MINA2学习笔记...

    Apache Mina简单实例

    Apache Mina是一个开源的Java框架,它简化了网络应用程序的开发,特别是对于TCP/IP和UDP协议的应用。在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的...

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

    MINA提供了一种与传输协议无关的抽象层,使得开发者可以轻松地构建基于TCP/IP、UDP/IP或其他I/O协议的服务端和客户端应用。 标题中提到的"mina2服务端客户端实例"是指使用Apache MINA 2版本创建的一个工作示例,该...

    spring+mina实现http接口服务端通信客户端

    Mina(Java Internet应用编程接口)是Apache软件基金会开发的一个网络通信框架,它简化了TCP/IP和UDP通信的复杂性,提供了高性能、异步事件驱动的网络应用程序开发模型。在本项目中,Mina将被用来创建一个服务器端,...

    一个Apache MINA使用案例源代码ApacheMina

    MINA的核心概念是IoSession,它代表了服务端与客户端之间的会话。IoSession提供了读写操作、管理会话状态和事件监听等功能。通过注册IoHandler,开发者可以处理连接建立、数据收发、连接关闭等事件。 在提供的源...

    apache-mina例子

    这个例子是关于如何使用Apache Mina实现一个简单的服务端和客户端通信的示例。在这个案例中,`MinaTimeServer`是服务端程序,它负责监听客户端的连接请求,并发送时间信息;而`MinaClient`则是客户端程序,它连接到...

    apache mina 简单示例

    6. **Event-driven Model**:Mina基于事件驱动模型,当有网络事件发生时(如数据到达、连接建立或断开),对应的事件处理器会被调用。 7. **Asynchronous Communication**:Mina使用非阻塞I/O,允许服务端同时处理...

    apache mina与单例类集合实现网络通讯V1.0

    综合以上知识点,"apache mina与单例类集合实现网络通讯V1.0"项目可能是构建了一个利用Apache Mina进行网络通信的服务端应用,通过单例模式确保网络通讯管理器的唯一性,并使用集合类来高效管理和维护客户端连接。...

    mina 实现简单通讯

    总结来说,这个"mina 实现简单通讯"项目展示了一个基于Apache MINA的网络通信示例,涵盖了服务端和客户端的创建、自定义的协议编解码器、以及必要的网络配置。这为学习和理解MINA框架提供了一个基础平台,并且可以在...

    apache-mina源码

    4. **Asynchronous I/O**:MINA基于NIO(Non-blocking I/O)实现,提供了异步的I/O操作。这种模式允许服务器同时处理多个连接,极大地提高了并发性能。 5. **Event-driven Model**:MINA的事件驱动模型使得在接收到...

    MINA 服务端和客户端demo

    MINA(Multipurpose Infrastructure for Network Applications)是Apache软件基金会的一个开源项目,提供了一套高度可扩展和高性能的网络应用程序框架,用于构建服务器和客户端应用。它简化了网络编程,特别是TCP/IP...

Global site tag (gtag.js) - Google Analytics