Ativando um repetidor

Para ativar a conexão do repetidor, você geralmente iniciará primeiro o servidor, depois iniciará o repetidor e, em seguida, iniciará o cliente.

Também é possível iniciar primeiro o repetidor e depois o servidor. Mas, a menos que você esteja usando o parâmetro clicon para estabelecer uma conexão reversa, o cliente deve sempre ser iniciado por último.

Etapa um: iniciando o servidor

O servidor pode ser um servidor de depuração, um servidor de processo ou um servidor de conexão KD. Você inicia isso normalmente, exceto que as configurações do protocolo de transporte serão usadas para se conectar ao repetidor, não ao cliente. Para obter detalhes, consulte Ativando um servidor de depuração, Ativando um servidor de processo ou Ativando um servidor de conexão KD.

Se você usar uma senha ao criar o servidor, essa senha será necessária quando o cliente for conectado, mas não quando o repetidor for criado.

Se você usar o parâmetro oculto , o servidor ficará oculto como de costume. O repetidor em si está sempre oculto.

Etapa dois: iniciando o repetidor

O repetidor incluído nas Ferramentas de Depuração para Windows é chamado DbEngPrx (dbengprx.exe).

DbEngPrx entende os seguintes protocolos de transporte: pipe nomeado (NPIPE), TCP e porta COM.

Se o cliente e o servidor estiverem usando o protocolo SSL (Secure Sockets Layer), você deverá usar o protocolo TCP para o repetidor. Se o cliente e o servidor estiverem usando o protocolo SPIPE (pipe seguro), você deverá usar o protocolo NPIPE para o repetidor. O repetidor transmitirá todos os dados que receber - ele não interpreta, criptografa ou descriptografa nenhuma informação. Toda a criptografia e descriptografia serão feitas pelo cliente e pelo servidor.

A sintaxe da linha de comando DbEnPrx é a seguinte:

dbengprx [-p] -c Transporte do Cliente -s Transporte do Servidor

Os parâmetros nos comandos anteriores têm os seguintes valores possíveis:

-p
Faz com que DbEngPrx continue existindo mesmo depois que todas as conexões com ele forem descartadas.

Transporte de cliente
Especifica as configurações de protocolo a serem usadas na conexão com o servidor. O protocolo deve corresponder ao usado quando o servidor foi criado. As sintaxes do protocolo são as seguintes:

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] 

Os parâmetros do protocolo têm os seguintes significados:

Servidor
Este é o nome da rede ou endereço IP do computador no qual o servidor foi criado. As duas barras invertidas iniciais (\) são opcionais.

tubo= Nome do Tubo
Se o protocolo NPIPE ou SPIPE for usado, PipeName será o nome que foi dado ao pipe quando o servidor foi criado.

porta= Soquete
Se o protocolo TCP ou SSL for usado, Socket será o mesmo número de porta de soquete que foi usado quando o servidor foi criado.

clique
Especifica que o servidor tentará se conectar ao repetidor por meio de uma conexão reversa. ClientTransport deve usar clicon se e somente se o servidor estiver usando clicon. Na maioria dos casos, o repetidor é iniciado antes do servidor quando uma conexão reversa é usada.

porta = COMPort
Se o protocolo COM for usado, o COMPort especificará a porta COM a ser usada. O prefixo "COM" é opcional (por exemplo, "com2" e "2" são aceitáveis).

baud= Taxa de baud
Se o protocolo COM for usado, BaudRate deverá corresponder à taxa de transmissão escolhida quando o servidor foi criado.

canal= COMChannel
Se o protocolo COM for usado, o COMChannel deverá corresponder ao número do canal escolhido quando o servidor foi criado.

senha= Senha
Se uma senha foi usada quando o servidor foi criado, Password deve ser fornecido para criar o cliente de depuração. Ele deve corresponder à senha original. As senhas diferenciam maiúsculas de minúsculas. Se a senha errada for fornecida, a mensagem de erro especificará "Erro 0x80004005".

ipversion=6
(Ferramentas de depuração para o Windows 6.6.07 e versões anteriores somente) Força o depurador a usar IP versão 6 em vez da versão 4 ao usar TCP para se conectar à Internet. No Windows Vista e versões superiores, o depurador tenta padronizar automaticamente o IP versão 6, tornando essa opção desnecessária.

Transporte de servidor
Especifica as configurações de protocolo que serão usadas quando o cliente se conectar ao repetidor. As sintaxes de protocolo possíveis são:

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] 

Os parâmetros do protocolo têm os seguintes significados:

tubo= Nome do Tubo
Quando o protocolo NPIPE ou SPIPE é usado, o PipeName é uma cadeia de caracteres que servirá como o nome do pipe. Cada nome de pipe deve identificar um repetidor exclusivo. Se tentar reutilizar um nome de pipe, você receberá uma mensagem de erro. O PipeName não deve conter espaços ou aspas. PipeName pode incluir um código de formato de estilo printf, como %x ou %d. O repetidor substituirá isso pela ID do processo de DbEngPrx. Um segundo código desse tipo será substituído pela ID do thread de DbEngPrx.

porta= Soquete
Quando o protocolo TCP ou SSL é usado, Socket é o número da porta do soquete.

É possível também especificar um intervalo de portas separadas por dois pontos. DbEngPrx verificará cada porta nesse intervalo para ver se ela está livre. Se encontrar uma porta livre e nenhum erro ocorrer, o repetidor será criado. O cliente terá que especificar a porta real que está sendo usada para se conectar ao repetidor. Para determinar a porta real, procure o repetidor; Quando este repetidor for exibido, a porta será seguida por dois números separados por dois pontos. O primeiro número será a porta real usada; a segunda pode ser ignorada. Por exemplo, se a porta foi especificada como port=51:60, e a porta 53 foi realmente usada, os resultados da pesquisa mostrarão "port=53:60". (Se você estiver usando o parâmetro clicon para estabelecer uma conexão reversa, o cliente poderá especificar um intervalo de portas dessa maneira, enquanto o repetidor deve especificar a porta real usada.)

clicon=Client
Quando o protocolo TCP ou SSL é usado e o parâmetro clicon é especificado, uma conexão reversa será aberta. Isso significa que o repetidor tentará se conectar ao cliente, em vez de permitir que o cliente inicie o contato. Isso pode ser útil se você tiver um firewall que esteja impedindo conexão na direção usual. O cliente especifica o nome da rede ou o endereço IP do computador no qual o cliente existe ou será criado. As duas barras invertidas iniciais (\) são opcionais.

Como o repetidor está procurando um cliente específico, você não pode conectar vários clientes ao repetidor se usar esse método. Se a conexão for recusada ou interrompida, você terá que reiniciar o repetidor.

Quando o clicon é usado, é melhor iniciar o cliente antes que o repetidor seja criado, embora a ordem usual (repetidor antes do cliente) também seja permitida.

porta = COMPort
Quando o protocolo COM é usado, COMPort especifica a porta COM a ser usada. O prefixo "COM" é opcional (por exemplo, "com2" e "2" são aceitáveis). Você não pode usar a mesma porta COM no ClientTransport e no ServerTransport.

baud= Taxa de baud
Quando o protocolo COM é usado, BaudRate especifica a taxa de transmissão em que a conexão será executada. Qualquer taxa de transmissão compatível com o hardware é permitida. Se você estiver usando o protocolo COM no ClientTransport e no ServerTransport, poderá especificar taxas de transmissão diferentes, mas, naturalmente, a taxa mais lenta será o limite da rapidez com que o cliente e o servidor podem se comunicar entre si.

canal= COMChannel
Se o protocolo COM for usado, o COMChannel especificará o canal COM a ser usado na comunicação com o cliente. Esse pode ser qualquer valor entre 0 e 254, inclusivo. Você pode usar uma única porta COM para várias conexões usando números de canal diferentes. (Isso é diferente do uso de portas COM para um cabo de depuração. Nessa situação, você não pode usar canais dentro de uma porta COM.)

hidden
Evita que o servidor apareça quando outro depurador mostra todos os servidores ativos.

senha= Senha
Exige que um cliente forneça a senha especificada para se conectar à sessão de depuração. A senha pode ser qualquer string alfanumérica.

IcfEnable
Faz com que o depurador ative as conexões de porta necessárias para comunicação TCP ou pipe nomeado quando o Firewall de Conexão com a Internet estiver ativo. Por padrão, o Firewall de conexão com a Internet desabilita as portas usadas por esses protocolos. Quando IcfEnable é usado com conexão TCP, o depurador faz com que o Windows abra a porta especificada pelo parâmetro Socket. Quando IcfEnable é usado com conexão de pipe nomeado, o depurador faz com que o Windows abra as portas usadas para pipes nomeados (portas 139 e 445). O depurador não fecha essas portas após a conexão ser encerrada.

Etapa três: Iniciando o cliente

O cliente deve ser um cliente de depuração ou um cliente inteligente - o que corresponder ao seu tipo de servidor. Para obter detalhes, consulte Ativando um cliente de depuração, Ativando um Smart Client ou Ativando um Smart Client (modo kernel).

Se o servidor rejeitar a conexão (por exemplo, se você fornecer uma senha incorreta), o repetidor e o cliente serão desligados. Você terá que reiniciar os dois para restabelecer o contato com o servidor.