您的位置:首页 > 其它

MINA的UDP协议demo

2010-06-10 19:36 176 查看
最近要写一个监控程序,于是想到了用下MINA,网上找了些例子感觉并不适用,写了一个小例子测试了一下,很简单。数据需要主要通过xml发送,所以这个例子实现了文本数据传输。

客户端代码

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();
}
}


参考:

http://mina.apache.org/udp-tutorial.html

http://hi.baidu.com/yhzhw2121/blog/item/ba7b76552b30045d564e00e2.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: