写了个短信猫群发短信程序,存在问题:当给多个手机号发送短信时,只有第一个手机号能收到短信,其它都收不到。
如国加入断点调试,全部手机号都能收到短信。
请高手帮忙解决。。
//发送短信息
            string[] sArray = mobile.Split(',');
            
                for (int i = 0; i < sArray.Length; i++)
                {
                    SendMessage(sArray[i].ToString(), tlr.Text.Trim())
                }public bool SendMessage(string sReceieveNo, string sMsgContent) 
{         sp.DiscardInBuffer();
        sp.DiscardOutBuffer();
        string decodedSMS = pdudecod.smsDecodedsms(sMsgCenterNumber,sReceieveNo, sMsgContent);      
        sp.Write("AT+CMGS=" + pdudecod.nLength + "\r");
        sp.ReadTo(">");
        Thread.Sleep(500);
        byte[] end = Encoding.ASCII.GetBytes(string.Format("{0}\x01a", decodedSMS));
        sp.Write(end, 0, end.Length);
        sp.Write(((char)26).ToString() + "\r");      
 return true;  
    

解决方案 »

  1.   

    你在发送的时候,要sleep()一下,不能一下子都丢给Modem,串口通信及无线毕竟没那么快;
      

  2.   

    谢谢,已经加了Thread.Sleep(500);不行
      

  3.   

    非常感谢,我以前也在for循环里放过,但值设得太小,没有成功。现在谢为sleep(2500)可以发送了,但同时又有一个问题,但发送手机号数量增加时,又不管用了。
      

  4.   

    foreach(短信集合)
    {
        do
        {
          sleep
          发送
        }while(不成功&&循环次数未达到)
    }
      

  5.   

    看看这两个之前讨论的帖子吧
    http://topic.csdn.net/u/20100428/17/fc703638-5220-4fd4-b5cd-5218eae86088.html?55064
    http://topic.csdn.net/u/20100504/16/0ed12006-f17e-44cb-921d-d1132e61f0c8.html?43489
      

  6.   

    短信Modem是收发短信是很慢的,厂家的建议是20秒发一条,但我测试有的短信Modem10秒能发6条,再多了就发不出去了;
      

  7.   

    谢谢各位,我在sp.Write(((char)26).ToString() + "\r");   之后加了thread.sleep(3000),在for中重设为sleep(4000),可以连续发10条短信了。就是有点慢,不知道有没有更好的办法