首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(1) | 引用(0) | 阅读2572次
VS.NET C# SGIP基本完成

又看到两年前的CMPP代码,分别有C#和JAVA版本,记得当时先做C#,再移植到JAVA,就是简单的把C#代码复制到JBUILDRE,编译,看哪里不能通过就替换一下 关键字 之类的,基本也OK了。

也不能说完成,因为只是做了一下SP和SMG之间的几个协议 BIND/BIND_RESP/UNBIND/UNBIND_RESP/SUBMIT/SUBMIT_RESP/DELIVER/DELIVER_RESP,GNS和SMG之间的没有作,估计也差不多吧。实际发送是OK的,接收模拟器发来的信息也OK。

byte []bmsg=null;
    switch(d.smstype)
    {
     case 0:www.shengfang.org
      d.msglen=System.Text.ASCIIEncoding.ASCII.GetMaxByteCount(d.msg.Length);
      bmsg=System.Text.ASCIIEncoding.ASCII.GetBytes(d.msg);
      break;
     case 8:
      d.msglen=www.shengfang.orgbigEndianUnicode.GetMaxByteCount(d.msg.Length);
      bmsg=bigEndianUnicode.GetBytes(d.msg);
      break;
     case 15:
      d.msglen=www.shengfang.orgSystem.Text.Encoding.Default.GetMaxByteCount(d.msg.Length);
      bmsg=System.Text.Encoding.Default.GetBytes(d.msg);//source_addr
      break;
     default:
      break;
     }
    d.Check();www.shengfang.org
    HeaderMake(idsubmit,lensubmit+www.shengfang.orgd.msglen,out tmpmsg);
    int offset=SGIPMsg.HeaderLen;
    Type MyType = d.GetType();
    FieldInfo[] fields = MyType.GetFields(www.shengfang.org BindingFlags.Instance &line;BindingFlags.Public &line; BindingFlags.GetField );
    String stmp;
    String [] strnums=null;
    for (int i = 0; i < fields.Length; i++)
    {
     switch(fields[i].GetValue(d).GetType().ToString())
     {
      case "System.Byte":www.shengfang.org
       tmpmsg[offset]=www.shengfang.org(byte)fields[i].GetValue(d);
       offset+=1;
       break;
      case "System.Int32":
       Tools.int2byte((int)fields[i].GetValue(d),tmpmsg,offset);
       offset+=4;
       break;
      case "System.String":
       stmp=fields[i].GetValue(d).www.shengfang.orgToString();
       Array.Copy(encoder.GetBytes(stmp),0,tmpmsg,offset,stmp.Length);
       if(i<20)
        offset+=www.shengfang.orgSGIPSubmitStruct.ilen[i];
       else
        Array.Copy(bmsg,0,tmpmsg,offset,bmsg.Length);//source_addr
       break;
      case "System.String[]":
       strnums=www.shengfang.org(string [])fields[i].GetValue(d);
       for (int j=0;j<strnums.Length;j++)
       {
        Array.Copy(encoder.GetBytes(strnums[j]),0,tmpmsg,offset,strnums[j].Length);
        offset+=SGIPSubmitStruct.ilen[i];www.shengfang.org
        }
       break;www.shengfang.org
      default:
       break;www.shengfang.org
      }

做的时候想用反射,现在看看这段代码,还不如用数组,分别定义长度、类型、数值,可能代码更加清楚一些。算了,先这样吧,看看能不能移植到JAVA下或者LINUX C下面

GNS   Gateway Name Server,负责系统路由的管理和同步
MO   由手机用户提交的短消息
MT   由手机用户接收的短消息
SGIP Short Message Gateway Interface Protocol,本协议所描述的短消息网关接口协议,用于完成在SMG和SP之间、SMG和SMG之间短消息的发送、接收和转发功能,以及SMG和GNS之间路由表的同步功能
SMG Short Message Gateway ,联通公司的短消息网关,SMG之间的通讯协议采用SGIP
SMPP   Short Message Peer to Peer,短消息点对点协议,采用3.3版本
SMSC   Short Message Service Center ,短消息中心
SP   Service Provider,服务提供商


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/vsnetsgip1.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1120525897

2005年7月5日09:11星期二  [Dev开发] 追踪此文的RSS
aniu在 2005年11月10日11:56星期四 评论:
版主,你有SGIP的解压包没,可以给我参考一下吗?好急
谢谢版主了
Yippee 回复于 2005年11月10日12:56
我没有 :)

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1839
在线: 22||用户: 2576 [列表]
今日:2231||到访:2854085
Rss:885222||评论:1604

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8