c#短信发送软件游子

既然需要通过串口来与短信modem进行通讯,就需要一个串口通讯控件,这里我使用了微软的mscomm32.ocx串口通讯控件。具体实现方法是通过对mscomm32.ocx的几个属性设置(串口端口设置、发送数据类型设置、读写缓冲区设置等)来达到串口与短信modem进行通讯的目的,然后对输入的短信息进行编码,把编码后的短信息发送至短信modem,再通过AT指令去控制modem的发送。整个软件由三个程序组成,一是发送主程序,二是短信编码程序,三是串口通讯控件,下面作一一介绍。

一、串口通讯控件

二、短信的编码

短信息是文本信息,短信modem只支持ASCII格式码的文本信息,ASCII码格式包括英文字母A-Z和数字0-9及一些标点符号等字符,为此对于中文短信息必须通过编码使中文变成ASCII码,短信编码有三种模式:BLOCKMODE、基于AT指令的TEXTMODE和基于AT指令的PDUMODE的编码,西门子6688手机支持PDUMODE的编码,这种编码方式是把短信正文经过16进制编码后发送。PDU的编码又分为7bit编码、8bit编码和16bit编码,7bit编码最多可发送160个字符,8bit编码最多可发送140个字符,而16bit编码最多可发送70个字符,这种编码被用显示Unicode(UCS2)文体信息,可被大多数手机显示,所以这里我采用的是UCS2编码,其最多可发送70个字符,不管是英文还是中文。

一条短信由三部分组成,一是接收方的手机号码,二是短信中心号码,三是短信内容。在实际的编码过程中,这三部分是分开来进行的,最后再把它们合三为一。

⑴、短信中心号码编码

首先把短信中心号码的奇数位与偶数位互换,然后看其长度是否为偶数,如果不是,在最后添加F,并对最后一位与F互换位置。接着在号码前加上91,相当于加上一个"+"字符。最后计算编码后的总长度并除以2,并把这个数格式化为二位的16进制数。例如:广州的短信中心号码为8613800200500,编码后为0891683108200005F0,08是91683108200005F0的长度除2,即16/2=8,二位16进制表示就是08。

㈡、接收方手机号码编码

首先检查当前接收方手机号码的前两位是否有86字样,如果没有就补上86,然后奇偶位互换,最后检查整个长度是否为偶数,如果不是就加上F,并对最后一位与F互换位置,如手机号码为13918765434,编码后为683119785634F4。

㈢、短信内容编码

首先采用Big-Endian字节顺序的Unicode格式编码,即高低位互换,接着把它存入一个字节数组,然后去掉进行Unicode编码过程中的“-”字符,最后把整条编码好后的短信内容长度除2,并格式化成二位16进制数添加到编码后的短信内容前面。

例如,短信内容为:你好,HELLO!,编码后为:4F60597DFFOC00480065006C006C006F0021,最后根据国内PDU编码的原则在接收手机号编码前加上11000D91,在短信内容前加上000800,并把以上三部分编码串起来即可。

三、AT指令

AT指令类似于DOS命令,由命令与一些参数组成,来完成对modem实现某一功能的控制。AT指令有很多个,它的基本格式是AT+操作功能符+回车,我编写的这款短信发送软件实际只使用了两个AT指令,分别是:AT+CSCA和AT+CMGS,前一个是获取存于手机SIM卡里面的短信中心号码的命令,后面一个是发送一条短信命令。通常向modem发送一个AT指令,modem如果执行完成都会有一个执行结果回送。

四、短信发送软件主程序

下面是主程序的代码,图1是主程序的运行界面

PDUdecodingsms=newPDUdecoding();

MSCommcom=newMSComm();

Threadt,w;

private

{

xiancheng1();

}

voidxiancheng1()//连接串口

t=newThread(newThreadStart(InitCom));//定义连接线程

t.Start();//启动线程

privateboollianjie(stringduankou,stringbotelv)

try

stringdk=duankou.Trim().Substring(3);

if(com.PortOpen==true)com.PortOpen=false;

com.CommPort=Convert.ToInt16(dk);//串口号

com.InputMode=MSCommLib.InputModeConstants.comInputModeText;//传输的数据形式是文本

com.InputLen=0;//读取整个接收缓冲区内容

com.Settings=botelv+",N,8,1";//串口基本参数设置

com.PortOpen=true;//打开串口

com.OutBufferCount=0;//清空发送缓冲区

com.InBufferCount=0;//清空接收缓冲区

returntrue;

catch

MessageBox.Show("错误:连接参数有错,请重新选择!");

returnfalse;

voidInitCom()

inti;

if(lianjie(duankou.SelectedItem.ToString(),bote.SelectedItem.ToString()))

stringBuffer="";

stringbufy="AT+CSCA\r";

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

com.Output=bufy;//发送数据到串口发送缓冲区

Buffer+=com.Input;//接收串口接收缓冲区的数据

break;

if(i>4)

label5.Text="连接失败,重新连接!!";

else

intNum1=Buffer.LastIndexOf("86");

zhongxinhao.Text=Buffer.Substring(Num1,13);

label5.Text="连接成功!!";

com.PortOpen=false;

t.Abort();

privatevoidbutton2_Click(objectsender,System.EventArgse)

Application.Exit();

voidfsduanxin()

w=newThread(newThreadStart(fs));//定义发送线程

w.Start();//启动线程

privatevoidbutton3_Click(objectsender,System.EventArgse)

fsduanxin();

voidfs()

stringdhnum=shoujihaoma.Text;

fsdx(dhnum);//发送短信

w.Abort();

voidfsdx(stringdanhuahaoma)//发送短信程序段

inti=0;

duanxinshoufa.Text="正在发送,稍候";

stringdecodedSMS=sms.smsDecodedsms(zhongxinhao.Text,danhuahaoma,neirong.Text);

stringbufy="AT+CMGS="+sms.nLength+"\r";

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

com.Output=bufy;

Thread.Sleep(300);

Buffer+=com.Input;

Thread.Sleep(500);

if(Buffer.Length>0&&Buffer.EndsWith(">"))//判断AT指令执行的回送结果

stringbuf=decodedSMS+"\x01a";

com.Output=buf;

Thread.Sleep(1000);

stringchenggong="发送成功!";

stringResult=String.Format("{0},{1},{2}。\n",danhuahaoma,neirong.Text,chenggong);

duanxinshoufa.Text+="\r\n"+Result;

duanxinshoufa.Text+=".";

if(i>9)

duanxinshoufa.Text="发送失败,请重新发送!";

在程序中使用了线程控制,目的是协调程序运行与串口通讯之间的同步问题。另外在主程序中使用AT指令时都使用了循环,通过对AT指令执行结果回送的检测,判断AT指令是否被正确地执行,如果未被正确执行,则通过循环控制重发AT指令直至AT指令正确执行为止。

1、此程序我只在西门子6688,SL45i手机上成功应用。

2、此程序是在.NET平台上开发的,所以要在你的电脑上安装ms.net.framework1.1,这是一个免费软件,网上有下载。

3、程序中所使用的mscomm32.ocx控件需要注册,注册步骤如下:

①、将Mscomm32.ocx,Mscomm32.dep两个文件复制到系统SYSTEM32文件夹中。

②、用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在其中填入Regsvr32C:\windows\system32\Mscomm32.ocx。

③、在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在其中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键:4250E830-6AC2-11cf-8ADB-00AA00C00905并将内容设置为:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun。

THE END
1.短信软件下载群发短信软件手机短信软件下载瓦力短信app 3.40M / 2018-06-04 / v3.8.1 安卓版 评分: 下载 瓦力短信app是一款加强版的短信软件,手机自带的短信功能千变一律,瓦力短信让你的手机短信与众不同,各种炫酷的皮肤主题让你赏心悦目,轻松发收短信,智能拦截,告别恶意骚扰。 短信锁App http://www.downyi.com/key/duanxinruanjian/
2.手机短信软件app有哪些免费手机短信软件app下载安装在微信、QQ这些软件出现前,大家最常用的联系方式除了电话就是发短信,很多的小伙伴都有开过短信包月,今天小编给大家推荐几款好用的手机短信软件,这类app是非常强大的短信管理软件,能够完全的替代大家手机上的短信功能,支持用户发送短信、批量处理短信等,还有各种炫酷的界面特效,支持气泡对话框等各种装饰,感兴趣的用户http://www.downcc.com/k/sjdx/
3.电脑发短信的软件电脑端在当今数字化时代,短信作为快速、便捷的通信方式,在个人和商务沟通中扮演着重要角色,尽管智能手机的普及使得发送短信变得轻而易举,但在某些情况下,使用电脑发送短信更为方便高效,本文将介绍几款流行的电脑端发短信软件,并分析它们的特点和适用场景。 软件概览 https://www.kdun.com/ask/705927.html
4.有什么可以用电脑直接发短信的软件5条回答:【推荐答案】1、360安全卫士电脑发短信手机连接电脑---电脑进入“360手机助手”---点击右下角处的“短信”这个时候电脑已经给我们找到了手机上的联系人,并列在左边,右边是发送的短信。这时候点击“新建短信”,然后直接编辑发送即可2、可以使用易信https://wap.zol.com.cn/ask/x_3189271.html
5.电脑一键发送短信软件——高效快捷让沟通更便利随着技术的不断发展,电脑一键发送短信软件有望集成更多创新功能,为用户带来更加智能化、个性化的沟通体验。 下载地址(学会使用小白系统工具,让你的生活多一份收入,赚钱机会就在眼前!) 升级win10工具 U盘PE工具 在线装系统 标签: 电脑发短信软件手机短信群发手机信息发送https://www.163987.com/jiaocheng/139237.html
6.电脑发短信的软件哪个好用腾讯云开发者社区电脑发短信的软件有很多选择,以下是一些常见且好用的软件: AirDroid:AirDroid是一款强大的手机管理工具,它允许用户通过电脑发送和接收短信。除了短信功能外,AirDroid还提供了文件传输、通知同步、远程控制等功能。 Pushbullet:Pushbullet是一款跨平台的消息同步工具,它可以将手机上的短信推送到电脑上,并且可以直接在电脑上https://cloud.tencent.com/developer/information/%E7%94%B5%E8%84%91%E5%8F%91%E7%9F%AD%E4%BF%A1%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%93%AA%E4%B8%AA%E5%A5%BD%E7%94%A8-album
7.电脑发短信指南:简单教你如何利用电脑发送短信软件教程简介:本文将介绍如何利用电脑发送短信,为读者提供了一份电脑发短信指南。通过本文,读者将学会如何使用电脑发送短信,提高工作效率和便利性。 工具原料: 品牌型号:苹果iPhone 12 操作系统版本:iOS 14.5 软件版本:iMessage 一、连接手机与电脑 1、使用数据线将iPhone 12连接到电脑的USB接口。 https://www.koudaipe.com/life/22487.html
8.电脑免费发短信软件电脑免费发短信软件 短信平台CRM版是客户端的商务资讯即时递交系统,为使用者提供企客商务、彩信以及WAP PUSH的递交能力,为客户提供无线营销及会员约谈交流服务,支持10万/次的递交速度。 使用必到牌软件,进网站bidaoda.com把短信提醒内容群发到顾客们的手机上。http://www.198la.com/cuxiao/xingzheng/h15116.html
9.电脑发短信软件106群发短信软件10690短信平台互亿无线短信平台,为您提供电脑发短信软件相关产品,同时为您提供106群发短信软件、10690短信平台相关服务,满足网站、APP应用及系统手机号码验证、通知提醒及营销推广等场景需求。https://www.ihuyi.com/core/diannaofaduanxinruanjian.html
10.电脑怎么发短信电脑软件发短信有什么优缺点我们大家通常发短信都是通过手机来进行的,不知道大家有没听过电脑发短信呢,其实电脑也是可以发短信的,不过它要通过相应的软件来发送,那么电脑怎么发短信呢,电脑软件发短信有什么优缺点呢,下面小编就来给大家介绍下吧。 电脑怎么发短信 电脑发短信,它不仅可实现电脑与电脑之间的短信发送,还可以把电脑的信息发送到对方https://m.jia.com/zixun/article/495330.html
11.免费发送短信软件在线免费发短信工具下载v1.5电脑版分享一款可以在电脑上免费发送短信的小工具,该工具绿色无毒,安全免费。只需要输入手机号码即可向该号码发送短信~是一款非常好用,匿名发送短信的好软件~有需要的朋友可以下载使用。因防止恶意使用本软件,软件不提供自动验证功能,验证码设置复杂,请耐心输入完成 http://www.kkx.net/soft/18137.html
12.如何利用电脑给手机发短信详细可以参考各手机的官方网站。飞信也是大部分手机用户都会选择的一个不错的发短信软件!就连小编也是有在用这个软件!感觉挺不错的!推荐了! 温馨提示:关于以上为大家详细介绍的“如何用电脑给手机发短信,利用电脑给手机发短信的方法”就讲到这里,相信大家都有了深入的了解,希望能给你的生活带来方便,这就够了!https://www.360doc.cn/article/4958641_353418468.html
13.群发短信软件免费发短信软件V6.2电脑版下载软件介绍 相信很多朋友都会想到使用群发短信来推广自己的产品或是做广告,那么一款好用的群发短信软件就比较重要了,这里小编分享一款免费的短信群发软件,电脑版,大家可以试用下还不错哦。 软件介绍: 全智能电脑发短信软件是款运行在pc上电脑发短信软件。它是专门为有大量短信发送需求的客户设计,采用短信网关方式,实现三网http://www.winwin7.com/soft/1201.html
14.WindowsMobile6.5高级应用教程(整理)(转)51CTO博客答:不可以。但可以把手机上的短信拷贝到SIM卡;打开要复制的短信——选中该短信——点击菜单里——选择复制到SIM卡。重要信息你还可以通过智能手机工作室等第三方软件全部保存到电脑上。 选择短信全部删除后为何有几条短信一直删不掉,重启机器还会出现? https://blog.51cto.com/u_15082395/4731188
15.2024年9个群发短信软件/平台汇总与推荐(优缺点+价格+电脑群发短信那么群发短信平台有哪些呢?为了方便大家有更多的选择,小编这里就汇总了一些群发短信软件/平台,并为大家附上软件优缺点及价格参考。支持电脑群发和手机群发短信,不管你是在寻找美国短信群发平台,还是国际短信群发软件,这里都有适合你的,个人&企业均适用! 封面图来自于freepik,版权属于@DilokaStudiohttps://www.extrabux.cn/chs/guide/7619329
16.飞信客户端软件(含电脑端手机端)发送短信给好友手机每天免费限刷刷题APP(shuashuati.com)是专业的大学生刷题搜题拍题答疑工具,刷刷题提供飞信客户端软件(含电脑端、手机端)发送短信给好友手机每天免费限发()条。A.300B.800C.600D.500的答案解析,刷刷题为用户提供专业的考试题库练习。一分钟将考试题Word文档/Excel文档/PDF文档转https://www.shuashuati.com/ti/94ede3b747fb4ccda14c37f03cd0dc12.html?fm=bdbdsedcff840f7e315f2d509c39c15559030
17.迷你飞信飞信是中国移动推出的类似于QQ的免费即时通讯软件,它最大的优点就是能免费发手机短信,但最大的缺点就是PC版的客户端很卡,对于高配置的新电脑可能没什么问题,但对于旧一点的电脑用起来就感觉非常不舒服了。为此,中国移动推出了迷你飞信! 迷你飞信仅有不足2MB的体积且绿色无需安装,界面也是相当的简洁,可以方便地存放https://www.iplaysoft.com/fetionsmart.html