2017-11-10 2 views
0

Ich habe einen HTTPS-Client, der auf einem von zwei redundanten Hosts ausgeführt werden kann. Möchte, dass der Host, der der "aktive" Client-Host ist, eine bestimmte IP-Adresse als Quelladresse verwendet, sodass der Datenverkehr aus einer Quelle zu kommen scheint. Die Einrichtung des OS-Netzwerkes auf niedriger Ebene, um dies zu ermöglichen, ist vorhanden. Unser https-Client wird mit der Poco :: Net :: HTTPSClientSession-Klasse erstellt.So binden Sie bestimmte Quell-IP-Adressen mithilfe von Poco :: Net :: HTTPSClientSession

Aus dem Lesen dieser Situation ist das Binden der gemeinsamen Quell-IP-Adresse an den Client-Socket die Standardlösung. Versuchte den folgenden Code:

// 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); 

Leider ist dies als bind funktioniert nicht() wirft Poco :: InvalidAccessException und Ausnahmemeldung ist „binden kann nicht() eine SecureStreamSocketImpl“. Blick auf die Poco-Quelle und Bind() wirft nur diese Ausnahme. Scheint nicht erlaubt zu sein.

Wie funktioniert das mit der Klasse Poco :: Net :: HTTPSClientSession?

Kann man überhaupt mit dieser Klasse arbeiten?

Antwort

0

Momentan nicht möglich - dafür gibt es eine pending issue. Es wird irgendwann geschehen, aber momentan gibt es keinen Zeitrahmen.

+0

Danke, dass Sie mich auf die Pocoproject-Referenz verwiesen haben. –

Verwandte Themen