簡體   English   中英

沒有Console.Readline()調用,C#的EasySMPP庫將無法工作

[英]EasySMPP library for C# does not work without Console.Readline() call

嘗試使用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()調用,它將無法正常工作。 你能幫我這個忙嗎? 謝謝。

盡管這是一個非常古老的問題。 我也在尋找,但是直到找到問題所在才找到答案。

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();

嘗試用Try and catch圍繞它,使iftry並在catch exception.Messagereturn錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM