您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 关于回调接收短信内容不循环的问题,谢谢

关于回调接收短信内容不循环的问题,谢谢

来源:网络整理     时间:2016/5/16 9:32:35     关键词:循环,关于

关于网友提出的“关于回调接收短信内容不循环的问题,谢谢”问题疑问,本网通过在网上对“关于回调接收短信内容不循环的问题,谢谢”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:关于回调接收短信内容不循环的问题,谢谢
描述:

使用SDK开发短信收发平台,收短信使用回调,经过一番修改,终于可正常接收,但是发现一个问题:如果有2条短信需要接收,显示接收到的数据一样,包括号码、内容、时间都是一样的,具体代码如下:

//引用DLL        [DllImport("EUCPComm.dll", EntryPoint ="ReceiveSMSEx")]  // 接收短信publicstaticexternint ReceiveSMSEx(string sn, deleSQF mySmsContent);
//回调(接收短信)staticvoid getSMSContent(string mobile, string senderaddi, string recvaddi, string ct, string sd, refint flag)
{
string mob = mobile;
string content = ct;
int myflag = flag;
//在此处将短信内容存入datatable DataRow RecRow = TempDT.NewRow();
RecRow[
0] = mobile;
RecRow[
1] = ct;
RecRow[
2] = sd;
TempDT.Rows.Add(RecRow);
}
publicdelegatevoid deleSQF(string mobile, string senderaddi, string recvaddi, string ct, string sd, refint flag);
deleSQF mySmsContent
=new deleSQF(getSMSContent);
//声明静态的DataTablepublicstatic DataTable TempDT =new DataTable();
//Form1_Load中初始化DataTableprivatevoid Form1_Load(object sender, EventArgs e)
{
TempDT.Columns.Add(
"mob");
TempDT.Columns.Add(
"con");
TempDT.Columns.Add(
"rtime");
}
//button5单击事件收取短信privatevoid button5_Click(object sender, EventArgs e)
{
deleSQF mySmsContent
=new deleSQF(getSMSContent);
//接收短信 序列号 函数指针int result =2;
while (result ==2) //当result = 2 时,说明还有下一批短信等待接收,这时需重新再调用一次ReceiveSMS方法 {
result
= ReceiveSMSEx(textBox1.Text, mySmsContent);
if (result ==1)
{
textBox3.Text
+="接收短信成功:"+DateTime.Now.ToString()+"\r\n";
}
elseif (result ==101)
{
textBox3.Text
+="网络故障:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==102)
{
textBox3.Text
+="其它故障:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==105)
{
textBox3.Text
+="参数指针为空:"+ DateTime.Now.ToString() +"'\r\n";
}
elseif (result ==0)
{
textBox3.Text
+="失败:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==-1)
{
textBox3.Text
+="未知故障:"+ DateTime.Now.ToString() +"\r\n";
}
}
//如果TempDT有记录if (TempDT.Rows.Count >0)
{
foreach (DataRow row in TempDT.Rows)
{
//显示短信号码、内容、时间。就这里出错,如果有2条未接受短信,点接收时,textBox3中显示接受到的两条记录是一样的 textBox3.Text += row[0].ToString() +"/"+ row[1].ToString() +"/"+ row[2].ToString() +"\r\n";
}
清空TempDT
TempDT.Clear();
}
}

解决方案1:

你看看这个方法是怎么处理的

ReceiveSMSEx


以上介绍了“关于回调接收短信内容不循环的问题,谢谢”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1104396.html

相关图片

相关文章