没有Console.Readline()调用,C#的EasySMPP库不起作用

时间:2013-11-19 04:36:03

标签: c# .net smpp

我在使用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(),则调用它不起作用。你能帮帮我吗?谢谢。

2 个答案:

答案 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)

尝试Trycatch围绕它,if中的tryreturn的{​​{1}}错误。

相关问题