高手来看一下,代码问题

leixueqiyi 2007-03-22 04:57:56
为什么下面的代码,一步一步运行发短信不会有问题
但全部一起运行就会出错
public string SendMessage(string centerNumber,string number,string message)
{
string str;
string temp;

PDUdecoding pdu = new PDUdecoding();
//短信中心号编码
string s = pdu.smsDecodedCenterNumber(centerNumber);
//接受手机号编码
string s1 = pdu.smsDecodedNumber(number);
//整个短信编码
string s2 = pdu.smsDecodedsms(centerNumber, number,message);
int leng = (s2.Length - s.Length)/2;

str = "AT+CMGF=0" + '\r';

comm.Output = str;
System.Threading.Thread.Sleep(1000);

temp = string.Format("AT+CMGS={0}",leng);
str = temp + '\r';

comm.Output = str;
System.Threading.Thread.Sleep(1000);

str = s2+ '\u001a';

comm.Output = str;
System.Threading.Thread.Sleep(1000);
return "";
}


//打开串口
在 InitComPort();
string[] number = new string[] { "13072815383","13518166563","13730889586"};
for (int i = 0; i < number.Length; i++)
{
test.SendMessage("8613010811500", number[i], this.textBox1.Text);
}
...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jrl5365 2007-03-26
  • 打赏
  • 举报
回复
短信发送一条,中间应该要一些时间停顿的,你这样连着发一定会出问题的
leixueqiyi 2007-03-26
  • 打赏
  • 举报
回复
str = "AT+CMGF=0" + '\r';

comm.Output = str;
System.Threading.Thread.Sleep(3000);
//stringBuilder.Append((string)comm.Input);

temp = string.Format("AT+CMGS={0}", leng);
str = temp + '\r';

comm.Output = str;


System.Threading.Thread.Sleep(1000);

str = s2 + '\u001a';

comm.Output = str;
System.Threading.Thread.Sleep(4000);

请问我想在Sleep3000秒后获得串口回传的OK信息,有什么命令好? OnComm时间好象是要在上面这三条命令都执行完后才能一次性收到回复的!
还有就是为什么如果短信多了,60秒没发完就会出现异常,这个问题怎么解决?
christion3 2007-03-26
  • 打赏
  • 举报
回复
up
leixueqiyi 2007-03-26
  • 打赏
  • 举报
回复
ufoteam 2007-03-26
  • 打赏
  • 举报
回复
那你就120秒内发送完 哈
leixueqiyi 2007-03-26
  • 打赏
  • 举报
回复
但是我要发很多条短信
在60秒内发完,好像不行哈
veryhappy 2007-03-22
  • 打赏
  • 举报
回复
中间延迟的时间不足

110,538

社区成员

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

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

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