首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 開發終端式簡訊系統完結篇:發送簡訊與收尾工作

     編輯:關於C語言

步驟八:發送簡訊核心程式碼

雙擊「發送」按鈕,貼上以下程式碼:

private void btnSend_Click(object sender, System.EventArgs e)
{
    string decodedSMS = sms.smsDecodedsms(CenterNumber.Text, targetNumber.Text, smsContent.Text);
    byte[] buf = Encoding.ASCII.GetBytes(String.Format("AT+CMGS={0}\r", sms.nLength));
    ss_port.Write(buf);
    string response = Encoding.ASCII.GetString(ss_port.Read(128));
    string SendState = "";
    if (response.Length > 0 && response.EndsWith("> "))
    {
        ss_port.Write(Encoding.ASCII.GetBytes(String.Format("{0}\x01a", decodedSMS)));
        SendState = "發送成功!";
    }
    else
    {
        SendState = "發送失敗";
    }
    string Result = String.Format("{0},{1},{2},\n\r", targetNumber.Text, smsContent.Text, SendState);
    smsState.Text += Result;
}

按 F5 執行,確認手機已正確連接電腦。點選「連接」,填入門號與內容,點擊「發送」即可看到結果。

圖五、發送成功畫面

步驟九:新增離開程式碼

雙擊「退出」按鈕,加入關閉序列埠並結束應用程式:

private void btnExit_Click(object sender, System.EventArgs e)
{
    ss_port.Close();
    Application.Exit();
}

總結與注意事項

所有功能已完成,但此為示範程式,實際部署仍需考量:

  • 序列埠通訊應採多執行緒:一執行緒專責讀取,一執行緒專責寫入
  • 需加入完整錯誤處理與例外捕捉
  • 請勿直接用於生產環境

測試環境

  • Windows 2000 Professional
  • Visual Studio .NET
  • 西門子 3508 手機 + 專用資料線

常見問題排查

  1. 手機品牌:不同廠商 AT 指令支援度不同,NOKIA 僅支援 Text 模式
  2. 資料線:連接後手機黑屏多為資料線故障,建議更換
  3. 簡訊中心號:確認手機 SIM 卡已正確設定簡訊中心號
  4. 先用序列埠除錯工具測試手機與電腦連線

版權聲明

範例程式可自由複製傳播,但須保留作者與第三方類別庫版權宣告。未經作者及天極網同意,不得轉載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved