动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 移动短信技术
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 移动短信技术 ]的信息



本月文章推荐
.SMS基本概念和移动通信系统介绍.
.在PC上通过手机发送短消息.
.基于Nokia S60的游戏开发之三.
.SMS开发的资料包.
.英斯克的网关模拟器.
.用J2ME的通用联网框架开发联网的.
.NOKIA、MOTOROLA、SIMENS及ERICC.
.WAP网关服务器应用介绍.
.为Nokia S60编写移动游戏之二.
.CMPP2.0协议升级.
.CMPP ACTIVE TEST.
.利用手机模块实现短消息(二).
.移动业务代码规范方案.
.一步一步搞定手机串口短信收发.
.Nokia S60编程环境的建立.
.各网关厂商API接口.
.motorola铃声算法,是Java的!.
.Windows CE下驱动程序开发基础.
.短消息网关通信模块的设计与实现.
.MIDI文件结构分析及生成方法.

使用WinInet编写发送短信程序

发表日期:2003-9-10 |


  如果能够使自己程序具有短信发送功能,那将会使您的程序蓬荜生辉,特别是通讯录等程序。通常在程序中发送短信有两种方式,一种是使用GSM Modem通过计算机串口编程发送短信,这种方式需要购置硬件设备,既不方便又不经济!另一种方式是通过网络发送,我们可以先在163.com等网站上注册一个用户,然后通过这些具有短信发送功能的网站发送短信。这种方式比较经济。下面本文讲述第二种的实现方式。
   
   实际上,我们的程序只要具有象浏览器那样向HTTP服务器发送数据的功能,我们就可以模拟浏览器的登陆等操作,通过程序来发送短信。我们打算使用WinInet函数来实现与HTTP服务器的通信。

   主要就两个函数,一个就是模拟浏览器的函数,另一个是发送短信的函数,其中使用了网易作为测试样例,您还可以自己添加其他短信网关。

/*****************************************************************
* 函数介绍: 执行HTTP的Post或Get方法
* 输入参数: TCHAR* hdrs       - HTTP头
            TCHAR* accept     - Accept类型
            TCHAR* Method     - POST 或 GET
            TCHAR* frmdata    - 要提交的数据
            TCHAR* ServerName - 服务器地址
            TCHAR* FormAction - 数据提交到的网页名称
* 输出参数: 无
* 返 回 值: int               - 返回操作状态(见SendSMS)
*****************************************************************/
int doHTTP(TCHAR* hdrs, TCHAR* accept, TCHAR* Method, TCHAR* frmdata, TCHAR* ServerName, TCHAR* FormAction)
{
   // 创建Internet
   HINTERNET hSession = InternetOpen("MyAgent",
                                     INTERNET_OPEN_TYPE_PRECONFIG,
                                     NULL,
                                     NULL,
                                     0);
   if (!hSession)
   {
       return 5;
   }
   // 连接服务器
   HINTERNET hConnect = InternetConnect(hSession,
                                        ServerName,
                                        INTERNET_DEFAULT_HTTP_PORT,
                                        NULL,
                                        NULL,
                                        INTERNET_SERVICE_HTTP,
                                        0,
                                        1);
   if (!hConnect)
   {
       return 2;
   }
   // 创建一个请求
   HINTERNET hRequest = HttpOpenRequest(hConnect,
                                        Method,
                                        FormAction,
                                        HTTP_VERSION,
                                        NULL,
                                        (const char**)&accept,
                                        0,
                                        1);
   if (!hRequest)
   {
       return 2;
   }
   // 发送请求
   BOOL bSendRequest = HttpSendRequest(hRequest,
                                       hdrs,
                                       strlen(hdrs),
                                       frmdata,
                                       strlen(frmdata));
   if (!bSendRequest)
   {
       return 2;
   }

////////////////////////调试用/////////////////
#ifdef _DEBUG
   int bDoLoop = 1;
   LPTSTR szReadBuffer;
   DWORD lNumberOfBytesRead;
   FILE* f1;
   szReadBuffer = (LPTSTR) malloc(500);
   ZeroMemory(szReadBuffer, 500);
   if ((f1=fopen("c:\\test.htm", "w"))!=NULL)
   {
       while(bDoLoop)
       {
           bDoLoop = InternetReadFile(hRequest, szReadBuffer, 500, &lNumberOfBytesRead);
           fseek(f1, 0L, SEEK_END);
           fwrite(szReadBuffer, sizeof(szReadBuffer), lNumberOfBytesRead, f1);
           if (lNumberOfBytesRead<500)
               bDoLoop = 0;
       }
   }
   fclose(f1);
   free(szReadBuffer);
#endif
//////////////////////////////////////////////////

   // 清除句柄
   if (hRequest)
       InternetCloseHandle(hRequest);
   if (hConnect)
       InternetCloseHandle(hConnect);
   if (hSession)
       InternetCloseHandle(hSession);

   return 0;
}

/*****************************************************************
* 函数介绍: 发送短信函数
* 输入参数: char* lpGateway  - 发送网关名称
            char* lpUserName - 发送者登陆账号
            char* lpPassword - 发送者登陆密码
            char* lpPhone    - 接收者手机号码
            char* lpContent  - 发送内容
            char* lpNickName - 发送者昵称
            char* lpExtent   - 扩展信息                                     
* 输出参数: 无
* 返 回 值: int       00     - 操作完成,结果未知
                      01     - 网关代号不存在
                      02     - 网络连接超时
                      03     - 用户中止操作
                      04     - 网关/账号/手机/短信内容空白或非法
                      05     - 出现其他错误
*****************************************************************/
SENDSMS_API int CALLAGREEMENT SendSMS(char* lpGateway,
                                        char* lpUserName,
                                      char* lpPassword,
                                      char* lpPhone,  
                                      char* lpContent,
                                      char* lpNickName,
                                      char* lpExtent
                                      )
{
    int Result;
    static TCHAR hdrs[] = _T("Content-Type: application/x-www-form-urlencoded");
    static TCHAR accept[] = _T("Accept: */*");
    static TCHAR frmdata[1024];

    // 登陆姓名,密码等不允许为空
    if ((strlen(lpGateway)<=0)||(strlen(lpUserName)<=0)||
          (strlen(lpPassword)<=0)||(strlen(lpPhone)<=0)||(strlen(lpContent)<=0))
        return 4;

    // 选择网易网关发送
    if (strcmp(lpGateway, "163.com")==0)
    {
        // 登录短信发送系统
        sprintf(frmdata, "username=%s&password=%s", lpUserName, lpPassword);
        Result = doHTTP(hdrs, accept, "POST", frmdata, "reg4.163.com", "/in.jsp");
       
        // 发送短信
        if (strlen(lpNickName)>0)
            sprintf(frmdata, "send=1&phone=%s&message=%s--%s", lpPhone, lpContent, lpNickName);
        else
            sprintf(frmdata, "send=1&phone=%s&message=%s", lpPhone, lpContent);
        Result = doHTTP(hdrs, accept, "POST", frmdata, "sms.163.com", "/service/sendmsg_pop.php");
       
        // 退出短信发送系统
        sprintf(frmdata, "username=%s", lpUserName);
        Result = doHTTP(hdrs, accept, "GET", frmdata, "reg4.163.com", "/Logout.jsp");

        return Result;
    }


    // 选择搜狐网关发送
    if (strcmp(lpGateway, "sohu.com")==0)
    {
        Result = 1;
        return Result;
    }

    // 网关代号不存在
    return 1;
}


上一篇:NOKIA 铃声图片方面的标准文档 人气:19531
下一篇:Pocket PC Phone Edition SMS编程入门 人气:22328
浏览全部短信的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-9 顶级域名交易系统 v3.0 完整版
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 Roclog v3.1.4 build 20080706
2008-7-9 乐彼网上开店系统(56770 Eshop)
2008-7-9 深度学习alexa排名提升专家 v1.0
2008-7-9 BBSXP 2008 Build 8.0.5 正式版
2008-7-9 一句话快速信息发布系统 修正完美
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 乐涛涛留言本 08版
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報