学习MINA之一
来源:互联网 发布:gy手机自动关机软件 编辑:程序博客网 时间:2024/06/05 21:52
很久没有写一系列的文章了,今天开始吧。
先说一下本次要实现的协议,从简单到复杂吧。
head
contentLength
content
2个字节
4个字节
n个字节
解释一下:
head:消息的标记位,比如消息中前两个字节为“0xAB”"0xCD",这种消息才会处理。
contentLength:content内容的长度
content:具体的消息内容
简单的设计一下:
首先,要有一个对象来承载这个消息的数据
其次,需要一个Encoder来把对象转换为消息流
再次,需要一个Decoder来把小溪流转换为对象
再次,一个CodecFactory
最后,Client和Server
OK,先看一下大概。
org.jansel.mina.message
-------------------------------encoder
-----------------------------------------MessageEncoder
-------------------------------decoder
-----------------------------------------MessageDecoder
-------------------------------message
-----------------------------------------Message
-------------------------------factory
-----------------------------------------MessageCodecFactory
-------------------------------MessageClient
-------------------------------MessageServer
先看Message的设计
从消息的格式来看,head部分是固定部分,contentLength部分由content的长度决定,所以Message对象其实承载的就是一个字符串即可,如下:
public class Message {
private String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getContentLength() throws UnsupportedEncodingException
{
return content.getBytes("UTF-8").length;
}
}
- 学习MINA之一
- apache mina 学习笔记之一:mina简介和环境搭建
- mina框架之一
- MINA学习
- MINA学习
- MINA学习
- Mina 学习
- MINA学习
- mina学习
- 学习MINA
- mina 粘包解决方案之一
- apache mina 学习(三)-----Mina架构
- Mina学习笔记(1) mina简介
- Mina学习笔记(5) MINA中的Session
- Mina学习笔记(5) MINA中的过滤器
- mina学习笔记一:mina上路
- mina学习笔记一:mina上路
- apache mina 学习(三)-----Mina架构
- 8月19日
- Why use a ProtocolCodecFilter
- PHPMailer 发送邮件(含详细介绍及使用方法说明)
- Play with SQL 之整理贴
- C++ LPTSTR
- 学习MINA之一
- C#创建用户控件:IPv4地址输入框
- 保留区
- Play with SQL 之整理贴
- Play with SQL 之整理贴
- java 读取html写入excel (htmlpaser,jxl)
- java实现手机发送信息(实例) xzhou
- jqGrid属性中文详细说明
- Axis2 错误:An error occurred while completing process -java.lang.reflect.InvocationTargetException