资源简介
CMPP协议的简单实现(只实现connect和submit,java实现),个人闲来练手所写,在公司实际环境下测试通过,并注明详细注释,希望能对刚接触CMPP的人有所帮助,有问题可以联系qq66921494
代码片段和文件信息
package CMPP;
public class base64 {
private base64() {
}
public static String encode(byte b[]) {
int code = 0;
StringBuffer sb = new StringBuffer((b.length - 1) / 3 << 6);
for (int i = 0; i < b.length; i++) {
code |= b[i] << 16 - (i % 3) * 8 & 255 << 16 - (i % 3) * 8;
if (i % 3 == 2 || i == b.length - 1) {
sb.append(base64Code[(code & 0xfc0000) >>> 18]);
sb.append(base64Code[(code & 0x3f000) >>> 12]);
sb.append(base64Code[(code & 0xfc0) >>> 6]);
sb.append(base64Code[code & 0x3f]);
code = 0;
}
}
if (b.length % 3 > 0)
sb.setCharAt(sb.length() - 1 ‘=‘);
if (b.length % 3 == 1)
sb.setCharAt(sb.length() - 2 ‘=‘);
return sb.toString();
}
public static byte[] decode(String code) {
if (code == null)
return null;
int len = code.length();
if (len % 4 != 0)
throw new IllegalArgumentException(
“base64 string length must be 4*n“);
if (code.length() == 0)
return new byte[0];
int pad = 0;
if (code.charAt(len - 1) == ‘=‘)
pad++;
if (code.charAt(len - 2) == ‘=‘)
pad++;
int retLen = (len / 4) * 3 - pad;
byte ret[] = new byte[retLen];
for (int i = 0; i < len; i += 4) {
int j = (i / 4) * 3;
char ch1 = code.charAt(i);
char ch2 = code.charAt(i + 1);
char ch3 = code.charAt(i + 2);
char ch4 = code.charAt(i + 3);
int tmp = base64Decode[ch1] << 18 | base64Decode[ch2] << 12
| base64Decode[ch3] << 6 | base64Decode[ch4];
ret[j] = (byte) ((tmp & 0xff0000) >> 16);
if (i < len - 4) {
ret[j + 1] = (byte) ((tmp & 0xff00) >> 8);
ret[j + 2] = (byte) (tmp & 0xff);
continue;
}
if (j + 1 < retLen)
ret[j + 1] = (byte) ((tmp & 0xff00) >> 8);
if (j + 2 < retLen)
ret[j + 2] = (byte) (tmp & 0xff);
}
return ret;
}
private static char base64Code[] = { ‘A‘ ‘B‘ ‘C‘ ‘D‘ ‘E‘ ‘F‘ ‘G‘
‘H‘ ‘I‘ ‘J‘ ‘K‘ ‘L‘ ‘M‘ ‘N‘ ‘O‘ ‘P‘ ‘Q‘ ‘R‘ ‘S‘ ‘T‘
‘U‘ ‘V‘ ‘W‘ ‘X‘ ‘Y‘ ‘Z‘ ‘a‘ ‘b‘ ‘c‘ ‘d‘ ‘e‘ ‘f‘ ‘g‘
‘h‘ ‘i‘ ‘j‘ ‘k‘ ‘l‘ ‘m‘ ‘n‘ ‘o‘ ‘p‘ ‘q‘ ‘r‘ ‘s‘ ‘t‘
‘u‘ ‘v‘ ‘w‘ ‘x‘ ‘y‘ ‘z‘ ‘0‘ ‘1‘ ‘2‘ ‘3‘ ‘4‘ ‘5‘ ‘6‘
‘7‘ ‘8‘ ‘9‘ ‘+‘ ‘/‘ };
private static byte base64Decode[] = { -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
62 -1 63 -1 63 52 53 54 55 56 57 58 59 60 61 -1 -1
-1 0 -1 -1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25 -1 -1 -1 -1 -1
-1 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
42 43 44 45 46 47 48 49 50 51 -1 -1 -1 -1 -1 };
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2789 2008-10-16 01:37 src\CMPP\ba
文件 2040 2008-10-16 01:37 src\CMPP\CMPP_CONNECT.java
文件 2584 2008-10-16 01:38 src\CMPP\CMPP_SUBMIT.java
文件 489 2008-10-16 01:38 src\CMPP\MessageHeader.java
文件 4263 2008-10-16 01:38 src\CMPP\SecurityTools.java
文件 2941 2008-10-16 01:38 src\CMPP\TypeConvert.java
文件 4038 2009-03-03 20:38 src\UI\CMPP_WINDOWS.java
目录 0 2009-03-01 13:43 src\CMPP
目录 0 2009-03-03 20:38 src\UI
目录 0 2009-03-01 13:43 src
----------- --------- ---------- ----- ----
19144 10
- 上一篇:java课程设计耿详义
- 下一篇:详细设计基于Java的学生信息管理系统
相关资源
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
- 基于C/S架构考试系统(Java)
- java access 仓库管理系统 源码
- 一元多项式相加 java实现
- java软件工程师简历模板——应届生
- DES(CFB) JAVA
- java读取局域网共享机器文件
- [免费]java学习 存储过程
评论
共有 条评论