[英]How to detect incoming connections in my modem
我需要檢測何時有人連接到我的計算機。 我啟用了傳入連接,並且需要知道用戶何時連接。 最好來自 CSharp 中的腳本
一般來說,不管是什么語言,方法都是打開一個串口和modem對話。 對於 .NET,您可能需要參考System.IO.Ports.SerialPort
。 連接參數(波特率、數據位、停止位、奇偶校驗、流控制)取決於相關設備。 試試57600或者你的串口最快的速度,8個數據位,1個停止位,無奇偶校驗和硬件流控; 這就是通常使用的。
當有人撥號時,Hayes 兼容調制解調器通過串行端口發送“RING”通知(計划文本)。 您將向調制解調器發送“AT A”以應答呼叫(或者調制解調器可能配置為自動應答)。 建立連接后,調制解調器會發送“CONNECT XXX”,其中 XXX 是連接詳細信息。 有關 Hayes 命令的摘要,請參閱此 Wikipedia 鏈接。 (它還描述了諸如命令/數據模式之類的細節,如果您想通過調制解調器連接編程通信,您可能需要將 go 放入其中。)
將 DataReceived 事件附加到您打開的串行端口查看有關如何打開端口和附加處理程序的 SerialPort 文檔。 您需要知道端口速度和停止、起始位、奇偶校驗等。嘗試 9600 (bps) 的速度、parity.none、無握手、1 個停止和起始位...最好的辦法是將所有內容保留為默認值並且只需執行 new SerialPort("COM5") 或任何您的 com 端口,這樣您就可以將其保留為默認值。
繼續將接收到的數據放入緩沖區並繼續掃描該緩沖區以查找“RING”。
當您的調制解調器響鈴時,您的串行端口將真正收到“響鈴”一詞。 所以你必須繼續掃描它。
另外,我之所以說將您的數據放入緩沖區是因為有時它會亂序到達。 或者你可能想要做一個 readLine 所以它讀取到 /r (回車)表示一個完整的響應
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.