Vorrei connettermi a un server utilizzando uno dei due percorsi di rete. Come si farebbe questo? Ho cercato su Google un bel po ', e la risposta comune è di giocherellare con la tabella di routing, tuttavia questo non è d'aiuto in quanto la destinazione ha un unico indirizzo IP. La maggior parte degli esempi presenta un client con una singola scheda di rete e un server con più NIC, ma in questo caso è l'opposto.Connessione TCP/IP su un'interfaccia specifica
L'app ForceBindIP sembra essere in grado di offrire questo tipo di funzionalità, quindi suppongo che debba essere possibile.
+----->-------+
192.168.1.3 | B | 192.168.1.4
+--------+ +--------+ +--------+
| Client | | Switch |-->---| Server |
+--------+ +--------+ +--------+
192.168.1.2 | A |
+----->-------+
Molto probabilmente userò C++ e winsock per farlo. Dovrò essere in grado di aprire una connessione su una determinata rotta a volontà (cioè non deve essere staticamente associato a una particolare rotta). Userò semplicemente il TCP/IP.
EDIT: Windows 7 client
Su Linux è possibile utilizzare SO_BINDTODEVICE (se si dispone di due dispositivi) o semplicemente bind pianura() prima di connettersi a distinguere tra IP locali. – cdleonard
Grazie, ma utilizzando un client Windows –
Il bind di Windows ha la stessa funzionalità, si specifica a quale IP associare: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496(v=vs. 85) aspx – fileoffset