java nio mina 学习笔记1 Simple Server and Client
来源:互联网 发布:阿里巴巴兼职网络平台 编辑:程序博客网 时间:2024/06/04 17:56
//服务端程序
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javaapplication1;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.charset.Charset;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.LineDelimiter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;/** * * @author user */public class MyServer { /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { // TODO code application logic here
//IoAcceptor for socket transport (TCP/IP). This class handles incoming TCP/IP based socket connections. IoAcceptor accpter=new NioSocketAcceptor(); accpter.getSessionConfig().setReadBufferSize(2048);//设置读取数据的缓冲区大小 accpter.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,10);//读写通道均在 10 秒内无任何操作就进入空闲状态
//设置编码 addLast(String name, IoFilter filter)
//name
- The filter's name //filter
- The filter to addaccpter.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory( Charset.forName("UTF-8") //,LineDelimiter.WINDOWS.getValue(), //LineDelimiter.WINDOWS.getValue() ) )); accpter.setHandler(new MyIoHandler());//IoHandler 注册到 IoService accpter.bind(new InetSocketAddress(9123));//绑定端口号 }}
//编写IoHandler
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javaapplication1;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
/** * * @author user */public class MyIoHandler extends IoHandlerAdapter{ // 这里我们使用的SLF4J作为日志门面,至于为什么在后面说明。 private final static Logger log = LoggerFactory.getLogger(MyIoHandler.class);
//收到客户端消息,当前方法就会执行@Override public void messageReceived(IoSession session, Object message) throws Exception { System.out.println(message.toString()); String str = message.toString(); log.info("The message received is [" + str + "]"); if (str.endsWith("quit")) { session.close(true); return; } } }
//客户端程序
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javaapplication1;
import java.net.InetSocketAddress;import java.nio.charset.Charset;import org.apache.mina.core.service.IoConnector;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.transport.socket.nio.NioSocketConnector;
/** * * @author user */public class MyClient { public static void main(String[] args){ IoConnector connector=new NioSocketConnector(); connector.setConnectTimeoutMillis(30000); connector.getFilterChain().addLast("codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName("UTF-8"), LineDelimiter.WINDOWS.getValue(), LineDelimiter.WINDOWS.getValue() ) ) ); connector.setHandler(new ClientHandler("你好\r\nHello World"));; connector.connect(new InetSocketAddress("127.0.0.1", 9123)); }}
//编写IoHandler
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javaapplication1;
import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
/** * * @author user */public class ClientHandler extends IoHandlerAdapter{ private final static Logger LOGGER = LoggerFactory .getLogger(ClientHandler.class); private final String values; public ClientHandler(String values) { this.values = values; }
//当连接服务器是,向服务器发送消息 @Override public void sessionOpened(IoSession session) { session.write(values); } }
- java nio mina 学习笔记1 Simple Server and Client
- Simple UDP server and client
- Apache Mina学习笔记:Java NIO基础概念
- Java NIO -- block server & client
- Simple OAuth Client and Server Examples
- Simple HTTP Server and Client in Python
- java nio mina 学习笔记2 介绍Mina的TCP的主要接口
- java nio server和lua client
- Java NIO -- no-block server & client
- java nio学习笔记1
- JAVA NIO学习笔记1
- Simple client-server network using C++ and Windows Winsock
- java NIO: MINA, Netty
- Java nio epoll mina
- nio server client
- Mina学习笔记(1) mina简介
- Mina学习笔记(1) mina简介
- Java NIO socket(network) program framework - Apache mina & JBoss netty (simple introduction)
- 常用的android弹出对话框
- 很久,很久了
- IBOutlet与IBAction
- Android 圆角Listview
- C#窗体实现QQ截图功能
- java nio mina 学习笔记1 Simple Server and Client
- Javascript中实现字符串转日期和比较日期大小
- flash10使用RTMFP 开发点对点应用
- delphi 中shellexecute 用法
- SQL Sever和Oracle取分类前N条记录方法汇总
- 投身移动互联的前提
- 在MyEclipse中配置Tomcat服务器
- 项目管理的核心
- Oracle去掉重复字符串