mina两种协议获取方式(TCP/UDP)
来源:互联网 发布:网络传播营销策划案 编辑:程序博客网 时间:2024/06/06 13:34
package com.lzo.mina;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.concurrent.Executors;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.keepalive.KeepAliveFilter;
import org.apache.mina.filter.keepalive.KeepAliveMessageFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.DatagramSessionConfig;
import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
public class MinaTimeServer {
/**
* main主要针对udp协议进行数据端口监听接收。
* @param args
*/
public static void main(String[] args) {
NioDatagramAcceptor acceptor = new NioDatagramAcceptor();
acceptor.getFilterChain()
.addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool()));
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
KeepAliveMessageFactory heartBeatFactory = new KeepAliveMessageFactoryImpl();
KeepAliveFilter heartBeat = new KeepAliveFilter(heartBeatFactory,
IdleStatus.BOTH_IDLE,new RequestTimeoutCloseHandler());
//设置是否forward到下一个filter
heartBeat.setForwardEvent(true);
//设置心跳频率
heartBeat.setRequestInterval(50);
acceptor.getFilterChain().addLast("heartbeat", heartBeat);
acceptor.setHandler(new MyIoHandler());//自己的业务逻辑处理类
DatagramSessionConfig dcfg = acceptor.getSessionConfig();
dcfg.setReuseAddress(true);
acceptor.bind(new InetSocketAddress(4567));
}
/**
* main1主要针对tcp协议来进行监听处理。
* @param args
*/
public static void main1(String[] args) throws IOException {
// TODO Auto-generated method stub
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("UTF-8"))));
acceptor.setHandler(new TimeServerHandler());
acceptor.getSessionConfig().setReadBufferSize(BUF_SIZE);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
acceptor.bind(new InetSocketAddress(PORT));
}
private static final int PORT = 8181,BUF_SIZE = 2048;
}
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.concurrent.Executors;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.keepalive.KeepAliveFilter;
import org.apache.mina.filter.keepalive.KeepAliveMessageFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.DatagramSessionConfig;
import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
public class MinaTimeServer {
/**
* main主要针对udp协议进行数据端口监听接收。
* @param args
*/
public static void main(String[] args) {
NioDatagramAcceptor acceptor = new NioDatagramAcceptor();
acceptor.getFilterChain()
.addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool()));
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
KeepAliveMessageFactory heartBeatFactory = new KeepAliveMessageFactoryImpl();
KeepAliveFilter heartBeat = new KeepAliveFilter(heartBeatFactory,
IdleStatus.BOTH_IDLE,new RequestTimeoutCloseHandler());
//设置是否forward到下一个filter
heartBeat.setForwardEvent(true);
//设置心跳频率
heartBeat.setRequestInterval(50);
acceptor.getFilterChain().addLast("heartbeat", heartBeat);
acceptor.setHandler(new MyIoHandler());//自己的业务逻辑处理类
DatagramSessionConfig dcfg = acceptor.getSessionConfig();
dcfg.setReuseAddress(true);
acceptor.bind(new InetSocketAddress(4567));
}
/**
* main1主要针对tcp协议来进行监听处理。
* @param args
*/
public static void main1(String[] args) throws IOException {
// TODO Auto-generated method stub
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("UTF-8"))));
acceptor.setHandler(new TimeServerHandler());
acceptor.getSessionConfig().setReadBufferSize(BUF_SIZE);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
acceptor.bind(new InetSocketAddress(PORT));
}
private static final int PORT = 8181,BUF_SIZE = 2048;
}
阅读全文
0 0
- mina两种协议获取方式(TCP/UDP)
- 两种网络协议的比较(TCP&UDP)
- 两种传输协议TCP和UDP详解
- java中TCP和UDP两种协议的区别?
- 两类传输协议:TCP&UDP总结
- 两类传输协议:TCP、 UDP
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- 基于mina架构的JTT808协议两种解码方式性能比较
- 简述TCP和UDP两种协议的主要特点及其异同
- Java 网络编程(二) 两类传输协议:TCP UDP
- Java 网络编程(二) 两类传输协议:TCP UDP
- Java 网络编程(二) 两类传输协议:TCP UDP
- 网络传输两类传输协议:TCP UDP
- java: java mina ——基于TCP/IP、UDP/IP协议栈的通信框架
- linux-svn命令
- 一步步学习kotlin for android(三) kotlin省略findviewById
- php json_decode输出null, json_last_error() 页面显示4,也就是语法错误。
- Android实现系统关机和重启
- Android之利用正则表达式校验邮箱、手机号、密码、身份证号码等
- mina两种协议获取方式(TCP/UDP)
- hive 表修改字段类型
- html5移动端input file可进行拍照和选择图片
- [学习linux]Ubuntu kylin 16.04下安装mysql 问题及总结
- 内存操作
- gcc链接阶段
- (转)ProgressDialog使用总结
- CSV常用命令
- 13 明白了这点才能拿高薪