如何使用Poco :: Net :: HTTPSClientSession绑定特定的源IP地址

时间:2017-11-10 19:04:24

标签: c++ ssl network-programming poco poco-libraries

我有一个可以在两个冗余主机之一上运行的https客户端。希望主持人是“活跃的”主持人。客户端主机使用特定的IP地址作为源地址,以便流量看起来来自一个源。低级操作系统网络设置允许这一切都到位。我们的https客户端是使用Poco :: Net :: HTTPSClientSession类构建的。

从阅读这种情况来看,将共享源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);

不幸的是,这并不起作用,因为bind()抛出了Poco :: InvalidAccessException而异常消息是"无法绑定()一个SecureStreamSocketImpl"。看看Poco源代码,bind()就是抛出这个异常。似乎是不被允许的。

如何使用Poco :: Net :: HTTPSClientSession类进行此操作?

甚至可以使它适用于这个类吗?

1 个答案:

答案 0 :(得分:1)

目前无法使用 - 它有一个pending issue。它最终会完成,但目前没有时间框架。