服务端代码
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Date;
import org.apache.log4j.Logger;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.LineDelimiter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.DatagramSessionConfig;
import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
public class ServerHandler extends IoHandlerAdapter {
private static Logger logger = Logger.getLogger(ServerHandler.class);
public ServerHandler() throws IOException {
NioDatagramAcceptor acceptor = new NioDatagramAcceptor();
acceptor.setHandler(this);
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
chain.addLast("logger", new LoggingFilter());
chain.addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("UTF-8"),
LineDelimiter.NUL, LineDelimiter.NUL)));
DatagramSessionConfig dcfg = acceptor.getSessionConfig();
dcfg.setReuseAddress(true);
acceptor.bind(new InetSocketAddress(1234));
}
public void messageReceived(IoSession session, Object message)
throws Exception {
System.out.println(message.toString() + ":" + new Date());
}
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
logger.error("MINA发生异常:", cause);
}
public void sessionOpened(IoSession session) throws Exception {
super.sessionOpened(session);
}
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
super.sessionIdle(session, status);
}
public static void main(String[] args) throws IOException {
new ServerHandler();
}
}
客户端代码
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.log4j.Logger;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFuture;
import org.apache.mina.core.future.IoFutureListener;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.LineDelimiter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.DatagramConnector;
import org.apache.mina.transport.socket.nio.NioDatagramConnector;
public class Client extends IoHandlerAdapter {
private static Logger logger = Logger.getLogger(Client.class);
DatagramConnector connector;
IoSession session;
public Client() {
connector = new NioDatagramConnector();
connector.setHandler(this);
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
chain.addLast("logger", new LoggingFilter());
chain.addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("UTF-8"),
LineDelimiter.NUL, LineDelimiter.NUL)));
IoFuture connFuture = connector.connect(new InetSocketAddress(
"127.0.0.1", 1234));
connFuture.addListener(new IoFutureListener() {
public void operationComplete(IoFuture future) {
ConnectFuture connFuture = (ConnectFuture) future;
if (connFuture.isConnected()) {
session = future.getSession();
try {
sendData();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
logger.error("Not connected...exiting");
}
}
});
}
private void sendData() throws InterruptedException {
session.write("测试数据发送!");
}
public static void main(String[] args) {
new Client();
}
}
分享到:
相关推荐
**Mina UDP Demo详解** Mina (Java Invented Network Application Platform) 是一款强大的网络通信框架,主要用于构建高性能、高可用性的网络应用。它提供了一种简单的方式来处理TCP/IP和UDP/IP协议,使得开发者...
“服务端基于MINA2的UDP双向通信Demo演示(MINA2服务端)” 这个标题表明这是一个使用MINA2框架在服务端实现的UDP(User Datagram Protocol)双向通信的示例代码。MINA2是一个开源的Java网络应用程序框架,它简化了...
标题中的“服务端基于MINA2的UDP双向通信Demo演示(Java客户端)”是指使用Apache MINA框架在Java中实现的UDP(用户数据报协议)的双向通信示例。MINA是一个高性能、异步的网络应用程序框架,常用于构建网络服务,如...
在Java世界里,Mina因其异步事件驱动模型而受到广泛的青睐,它简化了TCP/IP和UDP协议编程,使得开发者可以专注于业务逻辑,而无需关心底层网络通信的细节。在这个"Mina框架使用demo"中,我们将深入探讨如何利用Mina...
它提供了一个高度可扩展的、高性能的、事件驱动的I/O服务架构,广泛应用于各种网络协议的实现,如TCP/IP、UDP/IP以及HTTP等。在本“mina即时聊天demo”中,我们可以通过学习如何利用Mina来构建一个简单的即时聊天...
MINA 提供了一套高级的网络通信抽象层,简化了开发过程,特别是对于处理TCP/IP和UDP/IP协议栈的应用。MINA的核心概念是事件驱动和非阻塞I/O,这使得它在处理大量并发连接时表现出色。 在这个"Apache MINA2学习笔记...
它的设计目标是简化网络编程,特别是TCP/IP和UDP/IP等基于套接字的网络协议的处理。通过MINA,我们可以方便地创建服务器端和客户端应用,支持多种传输层协议,包括HTTP。 在MINA中实现HTTP协议,我们需要理解HTTP...
Apache Mina是一个高度可扩展且轻量级的Java框架,主要用于构建高性能、高效率的网络应用程序,如TCP/IP和UDP通信、SSL加密通信等。在Mina中,客户端和服务器的交互基于事件驱动模型,使得处理网络连接变得高效且...
Apache Mina(Minimum Asynchronous Network)是一个开源的网络通信框架,它为Java开发者提供了一种简单而高效的方式来构建高性能、高可用性的网络应用程序,如TCP/IP和UDP/IP协议的应用。在本示例中,我们将深入...
本文将围绕MINA2推送Demo客户端进行深入解析,以"echo_client_udp"为例,讲解如何利用MINA2实现一个简单的UDP回显客户端,并探讨其在实际应用中的价值。 1. MINA2基本概念: MINA2的核心概念包括Session、Filter和...
在创建Mina服务器时,我们需要配置一个`ServerBootstrap`实例,设置传输层(如NIO或UDP),然后指定一个`Handler`,该Handler将处理接收到的I/O事件。例如: ```java ServerBootstrap b = new ServerBootstrap(); b...
通过学习和实践Mina框架,你可以构建高效、可靠的网络应用程序,如TCP/UDP服务器、聊天室、文件传输系统等。Mina框架的强大之处在于它的灵活性和扩展性,你可以根据需求添加更多的过滤器,实现更复杂的功能,比如...
在Java世界中,Mina以其简洁的API和灵活性而受到青睐,尤其适用于处理大量的并发连接,如TCP/IP和UDP协议。在这个"Mina开发实例(服务端、客户端)DEMO"中,我们将深入探讨Mina如何实现长连接通讯。 首先,我们来...
Mina的核心概念是它支持多种协议,如TCP、UDP等,这使得它在开发跨平台的网络应用时具有广泛的应用场景。 本资源"mina demo全套"包含了一系列的示例代码,用于演示如何使用Apache Mina进行网络通信。这些示例涵盖了...
**Mina通信Demo详解** Mina(全称:Minimum APT for Network Application)是一个高度可扩展的、高性能的网络通信框架,广泛应用于Java平台上。在Android开发中,Mina可以帮助开发者构建TCP/IP和UDP网络应用,尤其...
Apache Mina是一个高度可扩展的网络应用框架,主要用于简化网络服务的开发,如TCP/IP和UDP协议的处理。Mina提供了异步的事件驱动模型,使得开发者能够更高效地处理网络I/O操作。在Mina小Demo中,Mina作为底层通信...
它支持多种协议,如TCP/IP、UDP/IP和HTTP,并且适用于Java NIO(非阻塞I/O)模型,这使得Mina在高并发环境下表现出色。 2. **Mina的核心组件** - **Session**:在Mina中,Session代表了服务端和客户端之间的连接。...
- **协议无关性**:Mina 提供了对多种网络协议的支持,如TCP/IP、UDP、SSL/TLS等,开发者可以根据需求选择合适的协议。 ### 2. Mina 工作流程 1. **服务端启动**:创建一个Acceptor,配置监听的端口号,然后启动...
Mina(Minimum Asynchronous Network)是一个高度可扩展的、高性能的网络应用开发框架,常用于构建基于TCP和UDP的网络应用,如服务器和客户端。在Android平台上,Mina可以帮助开发者实现与远程服务器的高效、异步...
Apache Mina是一个高度可扩展的网络通信框架,适用于TCP/IP和UDP/IP协议,而Spring MVC是Spring框架的一部分,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。 描述中的链接指向了一个CSDN博客文章,作者...