#c#
#c#
Вопрос:
Мне нужно определить, когда кто-то подключен к моему компьютеру. У меня включено входящее соединение, и мне нужно знать, когда пользователь подключен. Предпочтительно из скрипта на CSharp
Комментарии:
1. Не могли бы вы подробнее рассказать о своей настройке? Что именно вы имеете в виду, когда говорите, что у вас «включено входящее соединение»?
Ответ №1:
Как правило, независимо от языка, подход заключается в открытии последовательного порта для связи с модемом. Для .NET вы можете обратиться к System.IO.Ports.SerialPort
. Параметры соединения (скорость передачи в бодах, биты данных, стоп-биты, четность, управление потоком) зависят от рассматриваемого устройства. Попробуйте 57600 или самую высокую скорость вашего последовательного порта, 8 бит данных, 1 стоп-бит, отсутствие контроля четности и аппаратного управления потоком; это то, что обычно используется.
Модемы, совместимые с Hayes, отправляют уведомления о «звонке» (текст плана) через последовательный порт, когда кто-то набирает номер. Вы бы отправили модему сообщение «AT A», чтобы ответить на вызов (или модем может быть настроен на автоматический ответ). Когда соединение установлено, с модема отправляется сообщение «CONNECT XXX», где XXX — это сведения о соединении. Краткое описание команд Хейса смотрите по этой ссылке в Википедии. (Здесь также описываются такие детали, как режим команд / данных, в который вам, вероятно, потребуется перейти, если вы хотите запрограммировать обмен данными через модемное соединение.)
Ответ №2:
Прикрепите событие DataReceived к открытому вами последовательному порту Посмотрите документацию SerialPort о том, как открыть порт и прикрепить обработчики. вам нужно знать скорость порта и биты остановки, начала, четность и т.д. Попробуйте скорость 9600 (бит / с), четность.нет, нет подтверждения связи, по 1 биту остановки и запуска … лучшее, что можно сделать, это оставить все по умолчанию и просто создать новый SerialPort («COM5») или любой другой ваш com-порт, чтобы вы оставили значения по умолчанию.
Продолжайте помещать полученные данные в буфер и продолжайте сканировать этот буфер на предмет «ЗВОНКА».
ваш последовательный порт будет буквально получать слово «ring», когда ваш модем звонит. итак, вы должны продолжать сканирование на предмет этого.
Кроме того, причина, по которой я говорю поместить ваши данные в буфер, заключается в том, что иногда они поступают не по порядку. или вы можете захотеть создать строку чтения, чтобы она считывалась до /r (возврат каретки), который указывает на один полный ответ