Ich habe das Netz nach Antworten gesucht, aber ich kann nicht scheinen, eine vollständige Antwort zu finden.boost :: asio - Klärung der Bindung an eine bestimmte Netzwerkschnittstelle
Szenario: Ich habe eine Client-API und einen Server. Eine Anwendung verwendet die Client-API, um mit dem Server zu kommunizieren. TCP und UDP werden für die Kommunikation zwischen der Client-API und dem Server verwendet. All dies wurde mit ASIO geschrieben.
Die Client-API verbindet sich über TCP mit dem Server, sendet Befehle über TCP und empfängt Antworten über TCP. Die Client-API überwacht auch eine UDP-Adresse, wo sie kontinuierlich Echtzeitdaten empfängt.
Die Umgebung ist eine Mischung aus Maschinen mit WIN32 und WIN64. Alle Maschinen haben auch 2 Netzwerkkarten.
Frage: Ich möchte meine TCP- und UDP-Verbindungen an bestimmte lokale Netzwerkschnittstellen "anheften" können. Ich habe einige Informationen gesehen, die die SO_BINDTODEVICE
Socket-Option sowie die Bind-Funktion von früheren Posts oder anderen Seiten diskutiert.
Ist es möglich, dies in der WIN32/64-Umgebung zu tun? Wenn Sie etwas Licht auf dieses, einige Beispiele oder Seiten werfen könnten, die hilfreich sind, würde ich es wirklich schätzen.
Links Ich habe festgestellt:
- Using Linux, how to specify which ethernet interface data is transmitted on
- http://tuxology.net/2008/05/15/forcing-connections-through-a-specific-interface/
es nicht offensichtlich unter Verwendung war zu mir, wenn Sie versucht haben, Ihr 'accepto zu binden r 'Objekte und ein spezifischer' Endpunkt 'mit einem der überladenen Konstruktoren. Hast du das probiert? –
Sam - Ich habe den überladenen Konstruktor nicht ausprobiert. Ich werde es heute Abend versuchen und dich wissen lassen. Klingt wie es für einen TCP-Server tun sollte. Ich hoffe, dies für einen Tcp-Client, Udp-Client und UDP-Server zu tun. Wenn sie möglich sind. Kann ich die Bind-Methode auch für sie verwenden? Danke, werde das Ergebnis veröffentlichen. – skimobear
Ich habe unten eine Antwort mit einem Beispielcode gepostet, gebe einen Tipp und lass es mich wissen. –