Ho cercato risposte in rete ma non riesco a trovare una risposta completa.boost :: asio - Chiarimento sull'associazione a un'interfaccia di rete specifica
Scenario: ho un'API client e un server. Un'applicazione utilizza l'API del client per comunicare con il server. Sia TCP che UDP vengono utilizzati per comunicare tra l'API client e il server. Tutto questo è stato scritto usando ASIO.
L'API del client si collega al server tramite TCP, quindi invia i comandi via TCP e riceve le risposte via TCP. L'API client ascolta anche un indirizzo UDP dove riceve continuamente dati in tempo reale.
L'ambiente è un mix di macchine che eseguono WIN32 e WIN64. Tutte le macchine hanno anche 2 schede di rete.
Domanda: Mi piacerebbe poter "collegare" le mie connessioni TCP e UDP a specifiche interfacce di rete locali. Ho visto alcune informazioni che trattano l'opzione socket SO_BINDTODEVICE
e la funzione di bind da post precedenti o altri siti.
È possibile farlo nell'ambiente WIN32/64? Se potessi fare un po 'di luce su questo, alcuni esempi, o siti che sono utili, lo apprezzerei molto.
link che ho trovato:
- Using Linux, how to specify which ethernet interface data is transmitted on
- http://tuxology.net/2008/05/15/forcing-connections-through-a-specific-interface/
non era evidente per me se hai provato a legare il tuo "accettabile" r' obietta uno specifico 'endpoint' usando uno dei costruttori sovraccaricati. Hai provato? –
Sam - Non ho provato il costruttore sovraccaricato. Ci proverò stasera e ti faccio sapere. Sembra che dovrebbe fare il trucco per un server TCP. Spero di farlo anche per un client tcp, un client udp e un server udp. Se sono possibili Posso usare anche il metodo bind? Grazie, pubblicheremo il risultato. – skimobear
Ho postato una risposta qui sotto con un codice di esempio, provatelo e fatemelo sapere. –