Activación de un repetidor
Para activar la conexión del repetidor, normalmente iniciará primero el servidor y, a continuación, iniciará el repetidor y, a continuación, iniciará el cliente.
También es posible iniciar primero el repetidor y, a continuación, el servidor. Pero a menos que use el parámetro clicon para establecer una conexión inversa, el cliente siempre debe iniciarse en último lugar.
Paso uno: Iniciar el servidor
El servidor puede ser un servidor de depuración, un servidor de procesos o un servidor de conexión KD. Esto se inicia como lo haría normalmente, salvo que la configuración del protocolo de transporte se usará para conectarse al repetidor, no al cliente. Para obtener más información, consulte Activación de un servidor de depuración, Activación de un servidor de procesos o Activación de un servidor de conexión KD.
Si usa una contraseña al crear el servidor, esta contraseña será necesaria cuando el cliente se adjunte, pero no cuando se cree el repetidor.
Si usa el parámetro oculto , el servidor se ocultará como de costumbre. El propio repetidor siempre está oculto.
Paso dos: Iniciar el repetidor
El repetidor que se incluye en Herramientas de depuración para Windows se denomina DbEngPrx (dbengprx.exe).
DbEngPrx comprende los siguientes protocolos de transporte: canalización con nombre (NPIPE), TCP y puerto COM.
Si el cliente y el servidor usan el protocolo de capa de sockets seguros (SSL), debe usar el protocolo TCP para el repetidor. Si el cliente y el servidor usan el protocolo de canalización segura (SPIPE), debe usar el protocolo NPIPE para el repetidor. El repetidor pasará los datos que reciba, no interpreta, cifra ni descifra ninguna información. El cliente y el servidor realizarán todo el cifrado y el descifrado.
La sintaxis de la línea de comandos dbEnPrx es la siguiente:
dbengprx [-p] -c ClientTransport -s ServerTransport
Los parámetros de los comandos anteriores tienen los siguientes valores posibles:
-p
Hace que DbEngPrx continúe existente incluso después de que se quiten todas las conexiones a ella.
ClientTransport
Especifica la configuración del protocolo que se va a usar para conectarse al servidor. El protocolo debe coincidir con el usado cuando se creó el servidor. Las sintaxis del protocolo son las siguientes:
npipe:server=Server,pipe=PipeName[,password=Password]
tcp:server=Server,port=Socket[,password=Password][,ipversion=6]
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
Los parámetros de protocolo tienen los significados siguientes:
Server
Este es el nombre de red o la dirección IP del equipo en el que se creó el servidor. Las dos barras diagonales inversas iniciales (\) son opcionales.
pipe= PipeName
Si se usa el protocolo NPIPE o SPIPE, PipeName es el nombre que se dio a la canalización cuando se creó el servidor.
port= Enchufe
Si se usa el protocolo TCP o SSL, Socket es el mismo número de puerto de socket que se usó cuando se creó el servidor.
clicon
Especifica que el servidor intentará conectarse al repetidor a través de una conexión inversa. ClientTransport debe usar clicon si y solo si el servidor usa clicon. En la mayoría de los casos, el repetidor se inicia antes del servidor cuando se usa una conexión inversa.
port= COMPort
Si se usa el protocolo COM, COMPort especifica el puerto COM que se va a usar. El prefijo "COM" es opcional, por ejemplo, tanto "com2" como "2" son aceptables.
baud= BaudRate
Si se usa el protocolo COM, BaudRate debe coincidir con la velocidad de baudios elegida cuando se creó el servidor.
channel= COMChannel
Si se usa el protocolo COM, COMChannel debe coincidir con el número de canal elegido cuando se creó el servidor.
password= Contraseña
Si se usó una contraseña cuando se creó el servidor, se debe proporcionar la contraseña para crear el cliente de depuración. Debe coincidir con la contraseña original. En las contraseñas se distingue entre mayúsculas y minúsculas. Si se proporciona la contraseña incorrecta, el mensaje de error especificará "Error 0x80004005".
ipversion=6
(Herramientas de depuración para Windows 6.6.07 y versiones anteriores) Obliga al depurador a usar la versión 6 de IP en lugar de la versión 4 cuando se usa TCP para conectarse a Internet. En Windows Vista y versiones posteriores, el depurador intenta establecer el valor predeterminado automático en la versión 6 de IP, lo que hace que esta opción sea innecesaria.
ServerTransport
Especifica la configuración del protocolo que se usará cuando el cliente se conecte al repetidor. Las posibles sintaxis de protocolo son:
npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
tcp:port=Socket[,hidden][,password=Password][,IcfEnable]
tcp:port=Socket,clicon=Client[,password=Password]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
Los parámetros de protocolo tienen los significados siguientes:
pipe= PipeName
Cuando se usa el protocolo NPIPE o SPIPE, PipeName es una cadena que servirá como nombre de la canalización. Cada nombre de canalización debe identificar un repetidor único. Si intenta reutilizar un nombre de canalización, recibirá un mensaje de error. PipeName no debe contener espacios ni comillas. PipeName puede incluir un código numérico con formato printf-style, como %x o %d. El repetidor lo reemplazará por el identificador de proceso de DbEngPrx. Un segundo código de este tipo se reemplazará por el identificador de subproceso de DbEngPrx.
port= Enchufe
Cuando se usa el protocolo TCP o SSL, Socket es el número de puerto de socket.
También es posible especificar un intervalo de puertos separados por dos puntos. DbEngPrx comprobará cada puerto de este intervalo para ver si es gratis. Si encuentra un puerto libre y no se produce ningún error, se creará el repetidor. El cliente tendrá que especificar el puerto real que se usa para conectarse al repetidor. Para determinar el puerto real, busque el repetidor; cuando se muestra este repetidor, el puerto estará seguido de dos números separados por dos puntos. El primer número será el puerto real utilizado; se puede omitir el segundo. Por ejemplo, si el puerto se especificó como puerto=51:60 y el puerto 53 se usó realmente, los resultados de la búsqueda mostrarán "port=53:60". (Si usa el parámetro clicon para establecer una conexión inversa, el cliente puede especificar un intervalo de puertos de esta manera, mientras que el repetidor debe especificar el puerto real usado).
clicon=Client
Cuando se usa el protocolo TCP o SSL y se especifica el parámetro clicon se abrirá una conexión inversa. Esto significa que el repetidor intentará conectarse al cliente, en lugar de permitir que el cliente inicie el contacto. Esto puede ser útil si tiene un firewall que impide una conexión en la dirección habitual. El cliente especifica el nombre de red o la dirección IP del equipo en el que existe o se creará el cliente. Las dos barras diagonales inversas iniciales (\) son opcionales.
Dado que el repetidor busca un cliente específico, no puede conectar varios clientes al repetidor si usa este método. Si la conexión se rechaza o se interrumpe, tendrá que reiniciar el repetidor.
Cuando se usa clicon , es mejor iniciar el cliente antes de crear el repetidor, aunque también se permite el orden habitual (repetidor antes del cliente).
port= COMPort
Cuando se usa el protocolo COM, COMPort especifica el puerto COM que se va a usar. El prefijo "COM" es opcional, por ejemplo, tanto "com2" como "2" son aceptables. No puede usar el mismo puerto COM en ClientTransport y ServerTransport.
baud= BaudRate
Cuando se usa el protocolo COM, BaudRate especifica la velocidad de baudios a la que se ejecutará la conexión. Se permite cualquier velocidad de baudios compatible con el hardware. Si usa el protocolo COM en ClientTransport y ServerTransport , puede especificar diferentes velocidades de baudios, pero naturalmente la velocidad más lenta será el límite de la rapidez con la que el cliente y el servidor pueden comunicarse entre sí.
channel= COMChannel
Si se usa el protocolo COM, COMChannel especifica el canal COM que se usará para comunicarse con el cliente. Puede ser cualquier valor entre 0 y 254, inclusive. Puede usar un único puerto COM para varias conexiones mediante números de canal diferentes. (Esto es diferente del uso de puertos COM para un cable de depuración, en esa situación no se pueden usar canales dentro de un puerto COM).
hidden
Impide que el servidor aparezca cuando otro depurador muestre todos los servidores activos.
password= Contraseña
Requiere un cliente para proporcionar la contraseña especificada para conectarse a la sesión de depuración. La contraseña puede ser cualquier cadena alfanumérica.
IcfEnable
Hace que el depurador habilite las conexiones de puerto necesarias para la comunicación de canalización TCP o con nombre cuando el firewall de conexión a Internet está activo. De forma predeterminada, el firewall de conexión a Internet deshabilita los puertos usados por estos protocolos. Cuando se usa IcfEnable con una conexión TCP, el depurador hace que Windows abra el puerto especificado por el parámetro Socket. Cuando se usa IcfEnable con una conexión de canalización con nombre, el depurador hace que Windows abra los puertos usados para canalizaciones con nombre (puertos 139 y 445). El depurador no cierra estos puertos una vez finalizada la conexión.
Paso tres: Iniciar el cliente
El cliente debe ser un cliente de depuración o un cliente inteligente, lo que corresponda al tipo de servidor. Para obtener más información, consulte Activación de un cliente de depuración, Activación de un cliente inteligente o Activación de un cliente inteligente (modo kernel).
Si el servidor rechaza la conexión (por ejemplo, si proporciona una contraseña incorrecta), se apagará tanto el repetidor como el cliente. Tendrá que reiniciar ambos para restablecer el contacto con el servidor.