短信锚PDU模式发送问题 这两天在研究短信锚,用PDU方式发送,发现一条短信最多能发送42个字,不知道是哪里出问题了,一旦超过42个字,则发送一直卡在那里,既不返回OK又不返回ERROR,请问有人遇到这样的情况么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会吧,我用文本与PDU都发送过,都可以超 42啊,应该是72个汉字吧. void smsObj_OnSendSmsMessage(string szSender, string szSmsSender, string szRecvMobiles, string szMsg, string szCookie) { char[] charSeparators = new char[] { ';' }; string RevSmsConcent; string RespondMsg; string[] RevMobiles = szRecvMobiles.Split(charSeparators); //如果客户端群发给多个手机,把每个手机拆分出来 foreach (string aMobile in RevMobiles) // { RevSmsConcent = "发送者:"+szSender+"\r\n" +"发送者:"+ szSmsSender +"\r\n"+"手机号:"+ aMobile +"\r\n"+"信息:"+ szMsg +"\r\n"+"cookie"+ szCookie; txtRtxToMoContent.BeginInvoke(myDelegate, RevSmsConcent); RespondMsg = "<Result><Item Mobile=" + "\"" + aMobile + "\"" + " Result=" + "\"\"" + @"/></Result>"; smsObj.ReSendSmsMessage(szSender, szCookie, RespondMsg); } } 我也觉得奇怪呢,我发现短信部分是42个字,合计84个字节,加上前面部分15个字节,总共写进串口的就最多99个字节,再多就发布出去了。贴出部分设置代码,谁帮我看下是不是这些地方有问题?先是串口设置: comPort.PortName = "COM1" comPort.BaudRate = 9600; comPort.Parity = Parity.None; comPort.StopBits = StopBits.One; comPort.DataBits = 8; comPort.ReadBufferSize = 10000; comPort.ReadTimeout = 1000; comPort.WriteBufferSize = 10000; comPort.WriteTimeout = 10000; comPort.RtsEnable = true;发送的时候写进串口: comPort.Write(" AT+CMGS="+长度+ "\r" +编码部分+"\x01A");判断发送成功与否部分: ERROR = false; OK = false; for (int i = 0; i < 100; i++) { if (OK == true) break; if (ERROR == true) { MessageBox.Show("ERROR"); return "ERROR"; } System.Threading.Thread.Sleep(15); if (i == 99) ERROR = true; }谁帮我分析下错误在哪呢? WPF中遍历Textbox中内容 C# splitContainer 控件的简单问题 关于如何显示类库中方法的注释的问题 本站提供全原创(C#)源码和程序,新申请域名生效,高兴散分 javascript如何调用c#中的自定义函数 datagridview重绘后,如何设置单元格内文字的对齐方式(winform) 如何取出Hashtable中的所有Key?[在线等] 如何判断一个组件是否已经注册过了? 如何用相对路径连接Access数据库 这个XML如何写??急!! http 特殊字符怎么转换? 请教winform与网页结合软件开发问题?
{
char[] charSeparators = new char[] { ';' }; string RevSmsConcent;
string RespondMsg;
string[] RevMobiles = szRecvMobiles.Split(charSeparators); //如果客户端群发给多个手机,把每个手机拆分出来 foreach (string aMobile in RevMobiles) //
{ RevSmsConcent = "发送者:"+szSender+"\r\n" +"发送者:"+ szSmsSender +"\r\n"+"手机号:"+ aMobile +"\r\n"+"信息:"+ szMsg +"\r\n"+"cookie"+ szCookie;
txtRtxToMoContent.BeginInvoke(myDelegate, RevSmsConcent); RespondMsg = "<Result><Item Mobile=" + "\"" + aMobile + "\"" + " Result=" + "\"\"" + @"/></Result>"; smsObj.ReSendSmsMessage(szSender, szCookie, RespondMsg);
}
}
先是串口设置:
comPort.PortName = "COM1"
comPort.BaudRate = 9600;
comPort.Parity = Parity.None;
comPort.StopBits = StopBits.One;
comPort.DataBits = 8;
comPort.ReadBufferSize = 10000;
comPort.ReadTimeout = 1000;
comPort.WriteBufferSize = 10000;
comPort.WriteTimeout = 10000;
comPort.RtsEnable = true;
发送的时候写进串口:
comPort.Write(" AT+CMGS="+长度+ "\r" +编码部分+"\x01A");
判断发送成功与否部分:
ERROR = false; OK = false;
for (int i = 0; i < 100; i++)
{
if (OK == true)
break;
if (ERROR == true)
{
MessageBox.Show("ERROR");
return "ERROR";
}
System.Threading.Thread.Sleep(15);
if (i == 99) ERROR = true;
}
谁帮我分析下错误在哪呢?