[英]How to Console.Read() n number of lines from Asterisk AGI
我通過 AGI 與 Asterisk 通信,所以我使用:
Console.WriteLine(command);
接着:
string res = Console.ReadLine();
閱讀回復。
這幾乎在所有時間都可以正常工作。
當響應有多行時,只讀取第一行。 例如:
<Message/ast_msg_queue>AGI Tx >> 200 result=1 (Line 1
Line 2)
即使它有 n 行長,我如何閱讀響應?
到目前為止的測試:
StringBuilder sb = new StringBuilder();
int x;
while (true) {
x = Console.Read();
if (x == -1) break; // This never occurs
sb.Append(Convert.ToChar(x));
}
上面的代碼創建了一個無限循環,也是這樣:
StringBuilder sb = new StringBuilder();
string line;
while ((line = Console.ReadLine()) != null) {
sb.AppendLine(line);
}
AGI 命令結束 - 空行。
因此,您應該閱讀所有空行,丟棄該行。 每次。
或者只是閱讀已經完成的庫的源代碼。 有幾十個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.