资源简介
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的学生信息管理系统
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论