On 6/25/19 8:43 AM, JH via Boost wrote:
Hi,
I have an application using ASIO TCP/IP SSL socket connection in an embedded device, the device has two network interfaces, when one is down, another network interface takes over, which requires application TCP SSL socket connection to be established binding to a new network interface. What will be an appropriate implementation to switch application TCP connection from one to another interface?
Option 1: Restart application
Option 2: Terminate the old interface socket, create a new socket to start initial connection
Option 3: Some reconnection method which I don't know
With plain TCP and two distinct network interfaces, I don't think there is a way except to re-establish TCP/TLS connection when you detect that the previous connection died. Which you should detect as soon as you try sending something. This is the reason why most of the time you need some sort of periodic keepalive exchange with the server. Other than that, you may look into more advanced network configurations, like interface bonding, for example. Your application will open the connection on the bond interface and then the OS will decide which lower level interface to use to send data. I haven't done that, but as I understand it, it should work more or less transparently to your application.