java MinaServer
来源:互联网 发布:肖申克的救赎知乎 编辑:程序博客网 时间:2024/05/21 22:32
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
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.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import com.MinaService.MinaSessionHandler;
public class MinaServer implements Runnable{
/**
* 网络连接管理器构造方法,开启TCP网络连接线程
*/
public MinaServer() {
new Thread(this).start();
}
public static void createServer(){
NioSocketAcceptor acceptor = new NioSocketAcceptor(1);
acceptor.getFilterChain().addLast("Logger", new LoggingFilter());
acceptor.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
acceptor.setHandler(new MinaSessionHandler());
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setReceiveBufferSize(2048);
acceptor.getSessionConfig().setSendBufferSize(4096);
acceptor.getSessionConfig().setTcpNoDelay(true);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 60);
try {
acceptor.bind(new InetSocketAddress(9888));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 关闭网络
*/
public void stopNetwork() {
return;
}
@Override
public void run() {
}
}
package com.MinaService;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
public class MinaSessionHandler extends IoHandlerAdapter{
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
System.out.println("-------------服务端接收到的客户端发送的消息(服务器端)-------------:" + message);
super.messageReceived(session, message);
session.write(message);
}
@Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
if (session.isConnected()) {
session.close(true);
}
System.out.println("-------------抛出异常(服务器端)-------------");
}
@Override
public void messageSent(IoSession session, Object message) throws Exception {
session.write("-----------------返给客户端的消息:我已收到你传来的消息(服务器端)-------------"+ message.toString());
System.out.println("-------------服务端向客户端发送消息(服务器端)-------------" + message.toString());
}
@Override
public void sessionClosed(IoSession session) throws Exception {
super.sessionClosed(session);
System.out.println("-------------session关闭(服务器端)-------------");
}
@Override
public void sessionCreated(IoSession session) throws Exception {
session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30000);
System.out.println("-------------创建消息(服务器端)-------------");
}
@Override
public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
session.close(true);
System.out.println("-------------闲时触发(服务器端)-------------");
}
@Override
public void sessionOpened(IoSession session) throws Exception {
super.sessionOpened(session);
System.out.println("-------------创建链接(服务器端)-------------");
}
}
- java MinaServer
- Unity3D-client +MinaServer仿微信聊天系统
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- vision 引擎 游戏对象 实体
- iOS-调用系统的短信和发送邮件功能,实现短信分享邮件分享
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- IOS 应用中 打开 电话, 邮箱, 网站等URL
- 些代码准则:应高做到那些标准?
- java MinaServer
- 嵌入式 hi3518a裸板在nandflash上烧写uboot以及kernel以及文件系统
- MyEclipse代码提示设置
- request.getAttribute() 和 request.getParameter() 有何区别?
- C语言—统计字符串出现次数最多的字母
- 利用DHT网络原理制作bt采集蜘蛛,开源版
- 重定向和转发的区别【转】
- 黑马程序员--类加载器
- linux内核学习----系统调用