2017-11-10 20 views
0

두 개의 중복 호스트 중 하나에서 실행할 수있는 https 클라이언트가 있습니다. '활성'클라이언트 호스트 인 호스트가 특정 IP 주소를 원본 주소로 사용하여 트래픽이 한 소스에서 오는 것처럼 보입니다. 이것이 가능한 모든 OS 네트워크 설정. https 클라이언트는 Poco :: Net :: HTTPSClientSession 클래스를 사용하여 작성됩니다.Poco :: Net :: HTTPSClientSession을 사용하여 특정 소스 IP 주소를 바인딩하는 방법

이 상황에 대한 정보는 공유 소스 IP 주소를 클라이언트 소켓에 바인딩하는 것이 표준 해결책입니다. 다음 코드를 시도 :()

// set the shared IP address and use 0 (represents wildcard) for port 
Poco::Net::SocketAddress sa = Poco::Net::SocketAddress(ipAddress, 0); 

// bind the shared IP address to the socket 
Poco::Net::SecureStreamSocket sss; 
sss.impl()->bind(sa); 

Poco::Net::HTTPSClientSession session(sss); 

불행하게도,이 바인드대로 작동하지 않습니다는 마시고는 :: InvalidAccessException 및 예외 메시지는 "()는 SecureStreamSocketImpl를 결합 할 수 없습니다"던지고있다. Poco 소스를 보았고 bind()가이 예외를 던지고있다. 허용되지 않는 것 같습니다.

Poco :: Net :: HTTPSClientSession 클래스로이 작업을 수행하는 방법은 무엇입니까?

이 클래스에서 작동하게 할 수 있습니까?

답변

0

현재로서는 불가능합니다 - pending issue이 있습니다. 결국 완료 될 것이지만 현재에는 시간이 없습니다.

+0

pocoproject 참조를 가르쳐 주셔서 감사합니다. –