我在使用SmppClient尝试发送短信时,对于C#的EasySMPP开源库有一些奇怪的问题:
这总是失败(控制台写行显示“错误”):
SmsClient client = new SmsClient();
client.Connect();
if (client.SendSms("MyNumber", "XXXXXXXXX", "Hi"))
Console.WriteLine("Message sent");
else
Console.WriteLine("Error");
client.Disconnect();
Console.ReadLine();
但是当我只是添加这个愚蠢的Console.Readline调用它的工作正常:
SmsClient client = new SmsClient();
**string stupidstring = Console.Readline();** //Thats it
client.Connect();
if (client.SendSms("MyNumber", "XXXXXXXXX", "Hi"))
Console.WriteLine("Message sent");
else
Console.WriteLine("Error");
client.Disconnect();
Console.ReadLine();
如果我不添加Console.Readline(),则调用它不起作用。你能帮帮我吗?谢谢。
答案 0 :(得分:3)
虽然这是一个非常古老的问题。我也在寻找,但在我发现问题所在之前无法找到答案。
EasySMPP库正在使用异步调用来连接到SMSC,这就是为什么当你运行readline()命令行时,你被要求把你的文本作为readline,而当你的输入有一个延迟时,SMSC已经绑定了然后。所以它适用于愚蠢的Console.Readline()
当你在没有readline()的情况下运行时,代码执行得非常快,到那时你的应用程序还没有绑定到SMSC并且它失败了。
SmsClient client = new SmsClient();
client.Connect();
System.Threading.Thread.Sleep(5000);
if (client.SendSms("MyNumber", "XXXXXXXXX", "Hi"))
Console.WriteLine("Message sent");
else
Console.WriteLine("Error");
client.Disconnect();
Console.ReadLine();
答案 1 :(得分:0)
尝试Try
和catch
围绕它,if
中的try
和return
的{{1}}错误。