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(User Datagram Protocol)双向通信的示例代码。MINA2是一个开源的Java网络应用程序框架,它简化了...
总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...
标题中的“服务端基于MINA2的UDP双向通信Demo演示(Java客户端)”是指使用Apache MINA框架在Java中实现的UDP(用户数据报协议)的双向通信示例。MINA是一个高性能、异步的网络应用程序框架,常用于构建网络服务,如...
本项目“Android-基于Apache MINA进行封装实现Android APP作为服务器客户端进行通讯”正是利用MINA库来构建Android应用的网络通信功能。 Apache MINA的核心优势在于其非阻塞I/O(Non-blocking I/O)模型,这种模型...
Apache Mina2是一个高度可扩展且高性能的网络通信框架,主要设计用于简化开发网络应用,如TCP/IP和UDP协议的服务端和客户端。它提供了一种事件驱动、非阻塞I/O模型,使得开发者能够更专注于业务逻辑,而不是底层的...
Spring集成Mina实现服务端主动推送(包含心跳检测) 本篇文章主要介绍了Spring集成Mina实现服务端主动推送(包含心跳检测),具有一定的参考价值,以下是对该知识点的详细解释和总结。 一、Spring集成Mina的配置 ...
Apache Mina是一个高度可扩展的网络通信框架,主要用于构建高性能、高效率的服务端应用程序。它提供了事件驱动、异步I/O处理模型,使得开发者能够更专注于业务逻辑,而不是底层网络编程的复杂性。Mina主要应用于Java...
本文将深入探讨如何利用Apache Mina框架在Android平台上实现即时通讯服务端和客户端的构建。Apache Mina是一个网络通信应用框架,它简化了网络编程,使得开发者可以专注于业务逻辑,而不是底层的网络协议实现。 ...
mina_tcp服务端需要jar包.zip这个压缩包是针对Apache MINA框架实现TCP长连接服务端的一个资源集合。Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序...
MINA 提供了一套高级的网络通信抽象层,简化了开发过程,特别是对于处理TCP/IP和UDP/IP协议栈的应用。MINA的核心概念是事件驱动和非阻塞I/O,这使得它在处理大量并发连接时表现出色。 在这个"Apache MINA2学习笔记...
Apache Mina是一个开源的Java框架,它简化了网络应用程序的开发,特别是对于TCP/IP和UDP协议的应用。在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的...
MINA提供了一种与传输协议无关的抽象层,使得开发者可以轻松地构建基于TCP/IP、UDP/IP或其他I/O协议的服务端和客户端应用。 标题中提到的"mina2服务端客户端实例"是指使用Apache MINA 2版本创建的一个工作示例,该...
Mina(Java Internet应用编程接口)是Apache软件基金会开发的一个网络通信框架,它简化了TCP/IP和UDP通信的复杂性,提供了高性能、异步事件驱动的网络应用程序开发模型。在本项目中,Mina将被用来创建一个服务器端,...
MINA的核心概念是IoSession,它代表了服务端与客户端之间的会话。IoSession提供了读写操作、管理会话状态和事件监听等功能。通过注册IoHandler,开发者可以处理连接建立、数据收发、连接关闭等事件。 在提供的源...
这个例子是关于如何使用Apache Mina实现一个简单的服务端和客户端通信的示例。在这个案例中,`MinaTimeServer`是服务端程序,它负责监听客户端的连接请求,并发送时间信息;而`MinaClient`则是客户端程序,它连接到...
6. **Event-driven Model**:Mina基于事件驱动模型,当有网络事件发生时(如数据到达、连接建立或断开),对应的事件处理器会被调用。 7. **Asynchronous Communication**:Mina使用非阻塞I/O,允许服务端同时处理...
综合以上知识点,"apache mina与单例类集合实现网络通讯V1.0"项目可能是构建了一个利用Apache Mina进行网络通信的服务端应用,通过单例模式确保网络通讯管理器的唯一性,并使用集合类来高效管理和维护客户端连接。...
总结来说,这个"mina 实现简单通讯"项目展示了一个基于Apache MINA的网络通信示例,涵盖了服务端和客户端的创建、自定义的协议编解码器、以及必要的网络配置。这为学习和理解MINA框架提供了一个基础平台,并且可以在...
4. **Asynchronous I/O**:MINA基于NIO(Non-blocking I/O)实现,提供了异步的I/O操作。这种模式允许服务器同时处理多个连接,极大地提高了并发性能。 5. **Event-driven Model**:MINA的事件驱动模型使得在接收到...
MINA(Multipurpose Infrastructure for Network Applications)是Apache软件基金会的一个开源项目,提供了一套高度可扩展和高性能的网络应用程序框架,用于构建服务器和客户端应用。它简化了网络编程,特别是TCP/IP...