绘声绘彩的生活志

彩动力、彩信之星的诞生地

strftime下result buffer长度不足造成的函数执行失败.

代码如下:

#include 
#include 
 
int main(int argc, const char *argv[])
{
    time_t t;
    struct tm m;
    char resultbuf[8];
    int resultbuflen = sizeof(resultbuf);
    int len;
    t = time(NULL);
    localtime_r(&t, &m);
    len = strftime(resultbuf, resultbuflen, "%Y%m%d", &m);
    if(len<resultbuflen)
        printf("something wrong, result len:%d.\n\t%s.\n", len, resultbuf);
    else
        printf("now: %s.\n", resultbuf);
    return 0;
}

代码的本意是输出YYYYMMDD格式的当前日期到指定buffer中,此buffer是结构的一部分,此处代指,在buffer长度恰好等于输出结果时,执行出错.即在调用strftime时,需要保证输入的buffer长度大于预期结果至少一个字节.

短信发送状态报告(Status Report)的处理

彩动力

术语:

MS: Mobile Station

SC: Service Centre (used for SMS)

SMS: Short Message Service

SMSC: Short Message Service – Service Centre

SRStatus Report Message storage

SMS作为一种信息载体,不仅仅可以用来传输文本信息,还有很多别的用法,例如使用8位元传输push、铃声、乃至图片,甚至可以于其上构建专属TCP/IPWAP协议栈(事实上很少有人这么去做)。按照ETSI GSM 03.40规范规定,SMS具有下面几种类型:

1)SMS-DELIVER
2)SMS-DELIVER-REPORT
3)SMS-SUBMIT
4)SMS-SUBMIT-REPORT,
5)SMS-STATUS-REPORT
6)SMS-COMMAND

可以看出,短信的发送状态报告(SMS-STATUSREPORT)是一种特定格式的短信,被用来从SCMS传送状态报告。下面我们以一条中国移动实际的状态报告获得过程为例分析其组成元素。

第一步:发送短信前的准备工作

[Read the rest of this entry…]

公告

感谢您使用我写的软件!

彩动力 – 免费发彩信软件(彩信之星、彩信猫王、MMSMK)

彩动力

提供多种短信/彩信类型的发送

一、彩信

  1. 支持制作并发送容量为100K以下的普通(mixed)彩信和增强(related)彩信。
  2. 支持下列附件类型
    • 文字:中/英文
    • 图像:JPG/GIF/BMP/PNG
    • 音乐:MID/WAV/AMR/WMA/MMF
    • 其它:JAR/SIS/UMD
  3. 最大支持20个多媒体附件的同时添加

兼容性:软件可以提供制作100K以上大小彩信,但是由于手机终端对于彩信的支持不一,3个多媒体附件以内、容量30K以下的彩信才会被目前绝大多数彩信手机所支持。

推荐彩信制作格式:

  1. 小于等于3个多媒体附件
  2. 彩信大小不大于30K字节
  3. 尽量不采用中英文文字、JPG、GIF、BMP、MID之外的媒体类型

二、普通文字短信

支持单条中英文短信的发送和长文字短信的自动多条分拆发送

兼容性:普通单条短信被所有手机品牌支持

长文字短信的支持较为复杂,长度少于67*3汉字的长汉字短信(少于154*3字母长英文短信)可以被大多数国际品牌手机支持,但部分国内品牌手机出现短信首字乱码现象。

[Read the rest of this entry…]