请教 C# 短信猫 循环发送

太阳丛 2013-05-27 02:52:44
用的接口文件是sms.dll
发送的指令如下:
Sms_Send(电话号码.Text,短信内容.Text);
循环发送时,用定时器,将数据绑定到datagridview中,然后一条一条发送。
发送指令跟上面是一样的。。
打开端口没有问题,单独发送短信也没有问题,
但是如果用循环发送,在自己的电脑上可以,但是有些电脑就是发不出去。
开发环境VS2010, .net4.0 ,SQL2000

请各位大侠赐教
...全文
386 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
太阳丛 2013-05-31
  • 打赏
  • 举报
回复
SMS.DLL中没有短信猫状态的判断,只有一个连接和未连接的判断。 使用两个TIMER控件,一个用于发送,一个用于判断短信猫是在发送状态中,还是已经停止发送 并且控制timer的时间间隔 结贴,散分
Ne爸 2013-05-29
  • 打赏
  • 举报
回复
这个可能是太快了.你上一条信息还没有发送成功.设备正忙的时候你又发送了.先判断下短信猫是否可以发送.再发送
太阳丛 2013-05-29
  • 打赏
  • 举报
回复
终于又有人回帖了,非常感谢热心的朋友, 在我自己的电脑上面没有问题,try.catch抓不到异常, 而且我不可能在所有测试的电脑上面都装VS, 确实是在send("手机号码","短信内容"),这一步的时候,要不然也不会提示“发送失败”, 而且我还发现一个问题,短信的内容中有中文的逗号,发送不出去,后来我把逗号去掉,竟然有时候成功发送了,更多的还是发送不了
YoGn 2013-05-29
  • 打赏
  • 举报
回复
引用 4 楼 good_tong 的回复:
[quote=引用 2 楼 yefengyaogang 的回复:] 最好try-catch一下,感觉多半是环境的问题
能具体点吗?我也有这种感觉是环境造成的,但是代码里面就是一个循环[/quote] 你确认是走到Send()方法的时候就死了,那就在Send()方法哪儿设断点,看看变量的值有没有异常
太阳丛 2013-05-28
  • 打赏
  • 举报
回复
引用 7 楼 yang1216 的回复:
别人电脑上单独发送没问题循环发送不出去? 我遇到过只能发一次,第二个发不出去的情况。
是啊,只有我自己的电脑上面发送没有问题, 你遇到的问题后来是怎么解决的呢? 我实在是想不出还有什么地方会有问题
太阳丛 2013-05-28
  • 打赏
  • 举报
回复
在执行一条发送命令后,我用Thread.Sleep(10000);也尝试过了 发不出的电脑上面,不管是否有延时还是发不出去 而且我在一台新机器上面,只安装了.net4.0,连接没有问题,可还是发不出去, 在我自己的电脑上面遇到过一次发不出,但是得待下一次的TIMER执行的时候,还是发出去了
太阳丛 2013-05-28
  • 打赏
  • 举报
回复
端口连接是没有问题的,所有测试的机器都是可以连接的,代码: if (Sms_Connection(CopyRightStr, port,baud, out TypeStr, out CopyRightToCOM) == 1) { strWriteMsg("提示:设备连接成功 时间:" + DateTime.Now.ToString());//将信息写入TXT文件 OpenExc();//这个是我写的读取数据库的方法,将所有等待发送的短信息都保存到dtgv_Ready中 } 发送代码如下: for (int i = 0; i < dtgv_Ready.Rows.Count; i++) { if (!dtgv_Ready.Rows[i].IsNewRow) { if (Sms_Send(dtgv_Ready.Rows[i].Cells[1].Value.ToString().Trim(), dtgv_Ready.Rows[i].Cells[2].Value.ToString().Trim()) == 1) { string strDel = "DELETE FROM tbReadSend WHERE ID=" + dtgv_Ready.Rows[i].Cells[0].Value.ToString().Trim() + "";//发送成功后,删除待发 if (con.sqlOleComd(strDel) > 0) { string str = "INSERT INTO tbSend (tel,txt,dtime) VALUES ('" + dtgv_Ready.Rows[i].Cells[1].Value.ToString().Trim() + "','" + dtgv_Ready.Rows[i].Cells[2].Value.ToString().Trim() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')"; con.sqlOleComd(str);//将成功发送的短信存入另一张表 } } else { strWriteMsg("提示: 发送失败 !" + dtgv_Ready.Rows[i].Cells[1].Value.ToString().Trim() + " " + dtgv_Ready.Rows[i].Cells[2].Value.ToString().Trim() + " " + DateTime.Now.ToString()); } } }
di1988xiao 2013-05-28
  • 打赏
  • 举报
回复
C#编程中illustrator 11用于编程的dll文件,就是对矢量图编辑的类库,谁能提供个,网上没找到
零-点 2013-05-28
  • 打赏
  • 举报
回复
把中间停顿时间加长一点,可能短信猫还没有完成这次的发送,你又给它安排下一次的发送异常
fate1986 2013-05-28
  • 打赏
  • 举报
回复
你最好做一个日志记录,看每回发送短信的结果怎么样,做个记录处理,异常也处理下,看看是什么情况!
yang1216 2013-05-28
  • 打赏
  • 举报
回复
别人电脑上单独发送没问题循环发送不出去? 我遇到过只能发一次,第二个发不出去的情况。
wwexyz 2013-05-28
  • 打赏
  • 举报
回复
你换别人机子的时候,查看短信猫的COM端口号了吗?这个端口号有时候会变。 安装短线猫驱动的时候,把网断开。具体的这个我也说不清楚,但是以前弄得时候断网安装就好了。你先试试。将sms.dll放在system32下。 如果是webservice发送短信,需要下载一个专门做web服务的sms.dll在网上找一下。具体链接也不记得了 如果是CS程序,还不行,就去网上重新下载一个sms.dll。 先试试吧。
太阳丛 2013-05-27
  • 打赏
  • 举报
回复
看来,我的提问要沉了,难道就遇不到能帮我解决问题的人了吗?
太阳丛 2013-05-27
  • 打赏
  • 举报
回复
引用 2 楼 yefengyaogang 的回复:
最好try-catch一下,感觉多半是环境的问题
能具体点吗?我也有这种感觉是环境造成的,但是代码里面就是一个循环
太阳丛 2013-05-27
  • 打赏
  • 举报
回复
使用循环发送的时候,哪怕里面只有一条等待发送的短信,也依然发不出去
YoGn 2013-05-27
  • 打赏
  • 举报
回复
最好try-catch一下,感觉多半是环境的问题
Ice_flybird 2013-05-27
  • 打赏
  • 举报
回复
定时器的时间改长一些 再试试。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧