C#写手机软件

第一次花时间写点东西,以前一直看大家的。

最近接触到了短消息的编程, 相信有不少兄弟已经实现了,我仅仅写一下自己的心得。

首先查了csdn上的帖子,其中有不少的广告,没相信他们:)
看了大家推荐的天极上面那个蚕蛹写的经典程序,收获颇大
以那个程序为核心,开始尝试。中间得到了egpscar的热情回复,特此感谢。

蚕蛹那个是不能不看的入门教程啊,一定要看
http://soft.yesky.com/SoftChannel/72342380468109312/20040523/1800310.shtml

还有 popcorn(米花) 提供的 http://0926.net/archive/sms.htm
还有一个at指令的下载地址 http://www.cetinet.com/download/list.asp?id=179

在蚕蛹示例程序的基础上, 我边调试边增加了一些控制,基本上可以达到每小时800条。
我用的是win form,暂时还没有用windowns service来做。

源代码下载地址
http://bbs.gzeasy.com/index.php?showtopic=275782  没有地方上传,就借用了gz的bbs

我增加了
1 多线程处理,以保证可以同时回馈com口读出的内容, 而不是等到读一个at命令返回结束才显示结果
2 读com口增加重试, 50ms读一次
3 读com口增加处理buffer,
因为发一个命令给com口以后, 然后读com口获取返回信息, 注意com口的数据读走就不保存在com口上了. 下次读就是新的了,50ms读一次,等下一次读或者读n次放到buffer中,才组成一个符合协议的字符串, 在这上我花了一点时间才搞清楚的, 让高手见笑了。这样就ok了.

我用我的西门子3518i手机, 然后在卖手机配件的那里买了一个数据线30块, 就开始调试了

这里说明一下, 这个程序有日志记录的, 可以在界面上看到两个数据框, 黑底绿字的是发送log, 白底黑字的是bufferlog。记录啥内容呢, 就是本次发送失败还是成功,如果失败,还会重新发的. 发送的内容在数据库里,用的是sql, 表在database目录下可以找到创建的文件, 一个扩展名为sql的.

我发了200条, 看日志重发了若干条, 接受端多收了2条. 不是很理想是吧, 而且每小时估计只有400~600条.

后来我打算买一个gsm modem, 主要原因是充电的问题,因为我数据线和充电的线用的接口是一个, 也不能老换电池呀. 插曲(后来蚕蛹告诉我说手机可以同时充电和连数据线的,不过我想可能需要有硬件支持, 再说后来设备买好了,我也就没尝试)

gsm modem这个东西上海不知道哪里有卖的,反正我是没找到, 然后在一些卖这种dd的网站论坛上询价, 主要是北京和福建广东, 就是我们经常收到你中奖了的,现在大家都知道是福建和广东的骗子发的消息,我估计他们用的就是这类设备不过模块更多而已, 这里没有说某地域人坏话的意思.呵呵

有一家给了我报价, 我不敢马上买,主要担心这个程序不能用, 我就让他帮我测试,结果好几天没有回复, 等待之中www.sendsms.com 的一个小伙给我来信说他们也卖, 我说那你帮我试试看吧, 这小伙没装.net, 竟然连windows update都没用过:(, 只好我传给他一个framework, 他辛苦帮我试了一下午, 结果是好用的. 这个小伙还是蛮主动热情的, 所以这里给想买专业设备的兄弟们提供一个去处. 算是对他敬业精神的鼓励吧,呵呵

收到设备以后, 我马上测试100条, 用了7分钟不到一点, 这样看一小时发800条没有问题的,而且发送端日志没有失败和重发, 接收的手机上也全部收到,没有重复.

这个设备和手机的差别给大家分析一下
我的手机的连接速度是19200bps,而这个gsm modem(wavecom的)只有9600
但是它主要是稳定和反应速度快, 像我的手机大概要等稍微长一点时间才会读出来ok还是error,这个modem很快的. 我重复读一次就在日志中打印一个点, 手机平均要打7,8个点,而modem大概4,5个点,而且因为手机连续发好像容易出现error, 然后重新发,虽然最后也能发成功,但是时间就浪费了.

好了基本就是这样,前后用了大概两个星期不到, 要是没有蚕蛹的代码, 我不知道要如何下手呢, 所以也提供我的代码给大家参考(在征得蚕蛹的同意以后), 希望能节省需要这个的兄弟们的时间, 没有啥注释,如有疑问和探讨可以写信给我guanfei@hotmail.com,要中文主题的,否则垃圾邮件太多我容易忽视的。下一步打算做读消息.估计也不会太难了.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值