다음을 통해 공유


반복기 활성화

반복기 연결을 활성화하려면 일반적으로 먼저 서버를 시작한 다음, 반복기를 시작한 다음 클라이언트를 시작합니다.

먼저 반복기를 시작한 다음 서버를 시작할 수도 있습니다. 그러나 clicon 매개 변수를 사용하여 역방향 연결을 설정하지 않는 한 클라이언트는 항상 마지막으로 시작해야 합니다.

1단계: 서버 시작

서버는 디버깅 서버, 프로세스 서버 또는 KD 연결 서버일 수 있습니다. 전송 프로토콜 설정이 클라이언트가 아닌 반복자에 연결하는 데 사용된다는 점을 제외하면 평소와 같이 이 작업을 시작합니다. 자세한 내용은 디버깅 서버 활성화, 프로세스 서버 활성화 또는 KD 연결 서버 활성화를 참조하세요.

서버를 만들 때 암호를 사용하는 경우 클라이언트가 연결할 때 이 암호가 필요하지만 반복기를 만들 때는 필요하지 않습니다.

숨겨진 매개 변수를 사용하는 경우 서버는 평소와 같이 숨겨집니다. 반복기 자체는 항상 숨겨집니다.

2단계: 반복기 시작

Windows용 디버깅 도구에 포함된 반복기를 DbEngPrx(dbengprx.exe)라고 합니다.

DbEngPrx는 NPIPE(명명된 파이프), TCP 및 COM 포트와 같은 전송 프로토콜을 이해합니다.

클라이언트와 서버가 SSL(보안 소켓 계층) 프로토콜을 사용하는 경우 반복기용 TCP 프로토콜을 사용해야 합니다. 클라이언트와 서버가 SPIPE(보안 파이프) 프로토콜을 사용하는 경우 리피터에 NPIPE 프로토콜을 사용해야 합니다. 이 반복기는 수신하는 모든 데이터를 전달합니다. 즉, 정보를 해석, 암호화 또는 암호 해독하지 않습니다. 모든 암호화 및 암호 해독은 클라이언트와 서버에서 수행됩니다.

DbEnPrx 명령줄의 구문은 다음과 같습니다.

dbengprx [-p] -cClientTransport-sServerTransport

이전 명령의 매개 변수에는 다음과 같은 가능한 값이 있습니다.

-P
DbEngPrx에 대한 모든 연결이 끊긴 후에도 DbEngPrx가 계속 존재하게 합니다.

ClientTransport
서버에 연결하는 데 사용할 프로토콜 설정을 지정합니다. 프로토콜은 서버를 만들 때 사용된 프로토콜과 일치해야 합니다. 프로토콜 구문은 다음과 같습니다.

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] 

프로토콜 매개 변수에는 다음과 같은 의미가 있습니다.

서버
서버가 만들어진 컴퓨터의 네트워크 이름 또는 IP 주소입니다. 두 개의 초기 백슬라이시(\)는 선택 사항입니다.

pipe=PipeName
NPIPE 또는 SPIPE 프로토콜을 사용하는 경우 PipeName 은 서버를 만들 때 파이프에 지정된 이름입니다.

port=Socket
TCP 또는 SSL 프로토콜을 사용하는 경우 소켓 은 서버를 만들 때 사용한 것과 동일한 소켓 포트 번호입니다.

clicon
서버가 역방향 연결을 통해 반복기 연결을 시도하도록 지정합니다. ClientTransport는 서버가 clicon 을 사용하는 경우에만 clicon을 사용해야 합니다. 대부분의 경우 역방향 연결을 사용할 때 서버 앞에 반복기가 시작됩니다.

port=COMPort
COM 프로토콜을 사용하는 경우 COMPort 는 사용할 COM 포트를 지정합니다. 접두사 "COM"은 선택 사항입니다. 예를 들어 "com2" 및 "2"는 모두 허용됩니다.

baud=BaudRate
COM 프로토콜을 사용하는 경우 BaudRate 는 서버를 만들 때 선택한 전송 속도와 일치해야 합니다.

channel=COMChannel
COM 프로토콜을 사용하는 경우 COMChannel 은 서버를 만들 때 선택한 채널 번호와 일치해야 합니다.

password=Password
서버를 만들 때 암호를 사용한 경우 디버깅 클라이언트를 만들려면 암호를 제공해야 합니다. 원래 암호와 일치해야 합니다. 암호는 대소문자를 구분합니다. 잘못된 암호가 제공되면 오류 메시지에 "오류 0x80004005"가 지정됩니다.

ipversion=6
(Windows 6.6.07 이하용 디버깅 도구만 해당) TCP를 사용하여 인터넷에 연결할 때 디버거가 버전 4가 아닌 IP 버전 6을 사용하도록 합니다. Windows Vista 이상 버전에서 디버거는 IP 버전 6으로 자동 기본값을 설정하려고 시도하므로 이 옵션은 불필요합니다.

ServerTransport
클라이언트가 반복자에 연결할 때 사용할 프로토콜 설정을 지정합니다. 가능한 프로토콜 구문은 다음과 같습니다.

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] 

프로토콜 매개 변수에는 다음과 같은 의미가 있습니다.

pipe=PipeName
NPIPE 또는 SPIPE 프로토콜을 사용하는 경우 PipeName 은 파이프의 이름으로 사용할 문자열입니다. 각 파이프 이름은 고유한 반복기를 식별해야 합니다. 파이프 이름을 다시 사용하려고 하면 오류 메시지가 표시됩니다. PipeName 에는 공백이나 따옴표가 포함되어서는 안됩니다. PipeName에는 %x 또는 %d와 같은 숫자 printf 스타일 형식 코드가 포함될 수 있습니다. 이 반복기는 이를 DbEngPrx의 프로세스 ID로 바꿉니다. 이러한 두 번째 코드는 DbEngPrx의 스레드 ID로 바뀝니다.

port=Socket
TCP 또는 SSL 프로토콜을 사용하는 경우 소켓 은 소켓 포트 번호입니다.

콜론으로 구분된 포트 범위를 지정할 수도 있습니다. DbEngPrx는 이 범위의 각 포트를 검사 무료인지 확인합니다. 사용 가능한 포트를 찾은 후 오류가 발생하지 않으면 반복기가 만들어집니다. 클라이언트는 반복자에 연결하는 데 사용되는 실제 포트를 지정해야 합니다. 실제 포트를 확인하려면 반복기를 검색합니다. 이 반복기가 표시되면 포트 뒤에 콜론으로 구분된 두 개의 숫자가 잇습니다. 첫 번째 숫자는 사용되는 실제 포트입니다. 두 번째 는 무시할 수 있습니다. 예를 들어 포트가 port=51:60으로 지정되고 포트 53이 실제로 사용된 경우 검색 결과에 "port=53:60"이 표시됩니다. (clicon 매개 변수를 사용하여 역방향 연결을 설정하는 경우 클라이언트는 이러한 방식으로 포트 범위를 지정할 수 있지만, 반복기는 사용된 실제 포트를 지정해야 합니다.)

clicon=Client
TCP 또는 SSL 프로토콜을 사용하고 clicon 매개 변수를 지정하면 역방향 연결 이 열립니다. 즉, 반복기가 클라이언트가 연락처를 시작하도록 하는 대신 클라이언트에 연결을 시도합니다. 이는 일반적인 방향으로 연결을 방해하는 방화벽이 있는 경우에 유용할 수 있습니다. 클라이언트는 클라이언트 가 있거나 생성될 컴퓨터의 네트워크 이름 또는 IP 주소를 지정합니다. 두 개의 초기 백슬라이시(\)는 선택 사항입니다.

반복기는 하나의 특정 클라이언트를 찾고 있으므로 이 메서드를 사용하는 경우 여러 클라이언트를 반복자에 연결할 수 없습니다. 연결이 거부되거나 끊어진 경우 반복기를 다시 시작해야 합니다.

clicon을 사용하는 경우 일반적인 순서(클라이언트 이전의 반복기)도 허용되지만 반복기를 만들기 전에 클라이언트를 시작하는 것이 가장 좋습니다.

port=COMPort
COM 프로토콜을 사용하는 경우 COMPort 는 사용할 COM 포트를 지정합니다. 접두사 "COM"은 선택 사항입니다. 예를 들어 "com2" 및 "2"는 모두 허용됩니다. ClientTransportServerTransport에서 동일한 COM 포트를 사용할 수 없습니다.

baud=BaudRate
COM 프로토콜을 사용하는 경우 BaudRate 는 연결이 실행될 전송 속도를 지정합니다. 하드웨어에서 지원하는 모든 전송 속도가 허용됩니다. ClientTransportServerTransport 모두에서 COM 프로토콜을 사용하는 경우 서로 다른 전송 속도를 지정할 수 있지만, 당연히 느린 속도는 클라이언트와 서버가 서로 통신할 수 있는 속도에 대한 제한입니다.

channel=COMChannel
COM 프로토콜을 사용하는 경우 COMChannel 은 클라이언트와의 통신에 사용할 COM 채널을 지정합니다. 이 값은 0에서 254 사이의 값(포함)일 수 있습니다. 다른 채널 번호를 사용하여 여러 연결에 단일 COM 포트를 사용할 수 있습니다. (이는 디버그 케이블에 COM 포트를 사용하는 것과 다릅니다. 이 경우 COM 포트 내에서 채널을 사용할 수 없습니다.)

숨겨진
다른 디버거가 모든 활성 서버를 표시할 때 서버가 나타나지 않도록 합니다.

password=Password
디버깅 세션에 연결하려면 클라이언트가 지정된 암호를 제공해야 합니다. 암호 는 임의의 영숫자 문자열일 수 있습니다.

IcfEnable
인터넷 연결 방화벽이 활성화된 경우 디버거가 TCP 또는 명명된 파이프 통신에 필요한 포트 연결을 사용하도록 설정합니다. 기본적으로 인터넷 연결 방화벽은 이러한 프로토콜에서 사용하는 포트를 사용하지 않도록 설정합니다. IcfEnable을 TCP 연결과 함께 사용하면 디버거가 Windows에서 Socket 매개 변수로 지정된 포트를 열게 됩니다. IcfEnable을 명명된 파이프 연결과 함께 사용하는 경우 디버거는 Windows에서 명명된 파이프에 사용되는 포트(포트 139 및 445)를 엽니다. 디버거는 연결이 종료된 후 이러한 포트를 닫지 않습니다.

3단계: 클라이언트 시작

클라이언트는 서버 유형에 해당하는 디버깅 클라이언트 또는 스마트 클라이언트여야 합니다. 자세한 내용은 디버깅 클라이언트 활성화, 스마트 클라이언트 활성화 또는 스마트 클라이언트활성화(커널 모드)를 참조하세요.

서버가 연결을 거부하는 경우(예: 잘못된 암호를 제공하는 경우) 반복기와 클라이언트가 모두 종료됩니다. 서버와의 연락처를 다시 설정하려면 둘 다 다시 시작해야 합니다.