2011-04-29 26 views
9

Necesito detectar cuando alguien está conectado a mi computadora. Tengo una conexión entrante habilitada, y necesito saber cuando un usuario está conectado. Preferiblemente de una secuencia de comandos en CSharpCómo detectar conexiones entrantes en mi módem

+2

¿Podría obtener más información sobre su configuración? ¿Qué quiere decir exactamente cuando dice que "tiene habilitada una conexión entrante"? – brianpeiris

Respuesta

9

En general, independientemente del idioma, el enfoque es abrir un puerto serie para hablar con el módem. Para .NET, es posible que desee consultar System.IO.Ports.SerialPort. Los parámetros de conexión (velocidad en baudios, bits de datos, bits de parada, paridad, control de flujo) dependen del dispositivo en cuestión. Pruebe 57600 o la velocidad más rápida de su puerto serie, 8 databits, 1 bit de parada, sin paridad y control de flujo de hardware; eso es lo que típicamente se usa.

Los módems compatibles con Hayes gastan notificaciones "RING" (texto del plan) sobre un puerto serie cuando alguien está marcando. Enviaría un "AT A" al módem para responder a la llamada (o el módem puede configurarse para respuesta automática). Cuando se establece una conexión, se envía un "CONNECT XXX" desde el módem, donde XXX es la información de la conexión. Para obtener un resumen de los comandos de Hayes, consulte this Wikipedia link. (También se describen los detalles tales como el modo de comandos/datos que es probable que tengas que ir a, si quieres comunicaciones a través de una conexión de módem programar.)

0

Adjuntar un evento DataReceived al puerto serie que se han abierto Look en la documentación de SerialPort sobre cómo abrir el puerto y adjuntar controladores. necesita saber la velocidad del puerto y detener, iniciar bits, paridad, etc. Pruebe la velocidad de 9600 (bps), parity.none, no handshaking, 1 parada y bits de inicio ... lo mejor que puede hacer es dejar todo en el valor predeterminado y simplemente haga un nuevo SerialPort ("COM5") o lo que sea que sea su puerto COM, de modo que deje las cosas en sus valores predeterminados.

Siga poniendo los datos recibidos en un búfer y siga escaneando ese búfer para "RING".

su puerto serie recibirá literalmente la palabra "timbre" cuando su módem esté sonando. así que debes seguir escaneando.

Además, la razón por la que digo poner sus datos en un búfer es porque a veces llega fuera de secuencia. o tal vez desee hacer una línea de lectura para que se muestre hasta que/r (retorno de carro) indique una respuesta completa

Cuestiones relacionadas