快速开发关于SP程序

原创 2004年04月20日 12:08:00

快速开发关于SP程序<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

第一次接触SGIP协议 来发短消息 看了两天,一头雾水,还好,网络时代,在网上收集到大量的资料,其中还有关于CMPP

SGIP是联通的 CMPP是移动的 两者差别不大.

 

在网上也搜索到一些现成的开发库,试用版的,正式使用是要花钱的,

而且我也不敢使用它的开发库,万一那里有后门怎么办,

因为我做程序经常为了方便调试有一些后面,只是在正式交付时将这些后面去掉.

 

开发条件

1.SGIP协议 说明(网上有很多)

2.SGIP模拟网关(网上有很多)

3.掌握一种编程语言,包括掌握这种语言如何进行socket通讯

4.UltraEdit 这太重要了,分析数据包的时候使用

 

快速开发条件

1.我写了一个程序A 功能 监听一个端口 接收这个端口的数据并保存成文件,我要使用UltraEdit分析数据包.

2.随便找一个开发库,还有要带个使用开发库的例子.

3.拿笔和笔记本,可不是电脑笔记本,是可以使用笔写字的笔记本.我们随时要记录一些数据格式.

 

开始拿到SGIP协议,联通的协议实在是不是很规范,例如 1位的integer,这句话就是错的 integer4位的.我们不管它了认为它是char 正好是1位的.

 

开始动手吧

 

.启动SGIP模拟网关 配置 因为是模拟的地址设置为127.0.0.1,端口采用的是默认的

.编译那个使用开发库的例子 并且安装说明配置它,让后执行.一般来说SGIP模拟网关就会接到短消息了.OK

.SGIP模拟网关停掉,启动程序A,监听端口8801,然后再运行那个使用开发库的例子,程序A此时会接到数据

.分析数据

.第一个数据包是进行身份校验的 就是Bind,具体格式看SGIP协议好了,使用UltraEdit打开数据包,要以Hex看要.

SGIP协议里的Bind包对照看,第一位是00 00 00 3Dinteger4,16进制的3D就是10进制的61,说明Bind包数据长度是61(char).以后的数据您一点一点对照SGIP协议就是了

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

.然后知道我要干什么了吧,(我真的很坏吗:-)),我们现在还没有编程呢,那我们就写个程序 组包 将这个截获的数据包发出去,之前要启动模拟网关哟,网关没有反映,将用户名和密码改一下,重发,模拟网关显示密码错误,,成功了.

.由于是长连接,发出数据后,模拟网关是有数据返回的,你也要了解SGIP协议里返回包的格式

.改程序A 如果收到Bind包数据发出返回包,告诉客户端认证成功.

.以后的工作就是比较繁杂的数据包组包了

写到这里,我就不多写了,

注意一点 integer4位数据是右对齐的一下是将 int型的转换为右对齐的char[5],这是c语言的,其它语言请自行编写

 

#define HIGH_PRIORITY                        1

#define LOW_PRIORITY                        0

int HostByteOrder()

{

       union {

              unsigned char c[2];

              unsigned short int i;

       }CharToInt;

       CharToInt.i=0x35ca;

       if(CharToInt.c[0]==0x35) return LOW_PRIORITY;

       else return HIGH_PRIORITY;

}

 

void __stdcall sputl(const long lngDataLen,char *lBuf)

{/*将整型数转换为4字节的网络字节序*/

       union {

              char c[4];

              long l;

       }LongToChar;

 

       int i;

 

       LongToChar.l=lngDataLen;

       if((HostByteOrder())==HIGH_PRIORITY)

       {

              for(i=0;i<4;i++)

              {

                     lBuf[i]=LongToChar.c[4-i-1];

              }

       }

       else

       {

              for(i=0;i<4;i++)

              {

                     lBuf[i]=LongToChar.c[i];

              }

       }

       lBuf[4]=0x00;

       return;

}

 

我一直提到程序A ,这个一个十分简单的程序 就是socket监听端口 的程序 我使用BCB5写的如果你不会写请联系我

其它程序,可以到网上去搜索,暂不提供

(版权所有,转载时请注明作者和出处)

王一冰

wangyb@51.net

wyb45@sohu.com

bing-a@tom.com

2004-4-19

 

 

 

 

SP:创建Windows应用程序的要点详解

主要是对前面几个部分知识内容的一些总结并进行详细的分析主函数入口点在 main.cpp 中需要做得第一件事是包含 Win32 程序所需的头文件和定义函数入口点。 需要注意的是, Win32窗体应用程序...
  • baidu_17313961
  • baidu_17313961
  • 2016年08月02日 19:28
  • 535

Android中px,dp,sp单位的区别和应用

下面的解释基本是百度得来的 px: px就是pixel的缩写啦,pixel即像素,它不是自然界的长度单位。px是就是一张图片中最小的点,一张位图就是由这些点构成的。1024px就是1024像素,最简单...
  • u010074743
  • u010074743
  • 2016年06月08日 15:34
  • 2238

Android开发数据存储基础整理

Android存储方式基础:SharedPerference存储(共享参数)、内部存储、外部存储、数据库SQLite存储...
  • Canhumm
  • Canhumm
  • 2017年06月11日 10:05
  • 378

Shibboleth简介03——Shibboleth是怎样工作的?(二)

Shibboleth简介——Shibboleth是怎样工作的(二)? Identity Provider Discovery (IdP发现) 一个服务提供者(SP)是怎么决定发送认证请求给与之工...
  • jenyzhang
  • jenyzhang
  • 2016年09月29日 15:13
  • 565

Android App开发基础篇—数据存储(SP和文件)

Android中的数据存储技术     前言:Android中提供了多种数据存储技术来保存永久性应用数据,以便开发者能够根据需求选择合适的数据存储方案。例如:数据是应用的私有数据,还是可供其他应用(和...
  • lyklykkk
  • lyklykkk
  • 2017年02月21日 10:33
  • 842

android开发中用到的px、dp、sp

先介绍一下这几个单位: px : pixels(像素),对应屏幕上的实际像素点。 dip :device independent pixels,与密度无关的像素,基于屏幕密度的抽象单位...
  • gao_chun
  • gao_chun
  • 2014年07月30日 09:28
  • 4743

S5PV210开发系列三_简易Bootloader的实现

Bootloader是嵌入式系统上电后第一段执行的代码。对于功能简单的处理器,可能并没有Bootloader的概念,但对于应用处理器,有不同的启动方式,不同的存储设备(Nand flash、sd/mm...
  • huang20083200056
  • huang20083200056
  • 2015年06月23日 12:16
  • 1776

Android中dp,px,sp概念梳理以及如何做到屏幕适配

今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI很少,ga
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年10月27日 17:54
  • 64841

sp<> 强指针类的用法

文一: 转:http://wangjun-1985.spaces.live.com/blog/cns!E9070276AAF56C8E!472.entry 在Android 中可以广泛看到的tem...
  • JK198310
  • JK198310
  • 2016年08月04日 11:38
  • 1126

浅谈android 屏幕适配中 dp和sp的区别

欢迎转载 转载注明出处关于dp和sp的具体区别 看网上文章少有深入涉及 介于一次面试被问到:sp和dp的关系是什么?例如一个控件宽度为 15dp 或者 15sp 在大部分情况下是一样的,那什么情况下...
  • u010181592
  • u010181592
  • 2015年11月24日 14:30
  • 6924
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快速开发关于SP程序
举报原因:
原因补充:

(最多只允许输入30个字)