int m_nSocket6;
sockaddr_in6 m_address_6;
/*created the socket*/
m_nSocket6 = socket(AF_INET6, SOCK_DGRAM, 0);
int ret;
/* Set socket buffer size */
int buffer_size;
ret = setsockopt(m_nSocket, SOL_SOCKET, SO_RCVBUF, (char*) &buffer_size, sizeof(buffer_size));
/* Set socket timeout */
int timeout = m_nTimeout;
ret = setsockopt(m_nSocket, SOL_SOCKET, SO_RCVTIMEO, (char*) &timeout, sizeof(timeout));
/*Multicast*/
int yes = m_nMulticast; //1 = enabled
ret = setsockopt(m_nSocket, SOL_SOCKET, SO_REUSEADDR, (char*)&yes, sizeof(yes));
/*bind*/
memset((char *)&abc, 0, sizeof(m_address6));
m_address6.ss_family = AF_UNSPEC;
m_address6.sin6_family = AF_INET6;
m_address_6.sin6_addr = in6addr_any;
m_address6.sin6_port = htons((u_short)m_nPort);
ret = bind(m_nSocket6, (struct sockaddr*) &abc, sizeof(abc));
/*receiving the packets*/
recvfrom(m_nSocket, m_sBuffer, UPD_DATAGRAM_BUFFER_SIZE, 0, (struct sockaddr*) &m_address, &server_length);
Antwort
Um mit sowohl IPv4 und IPv6 zu arbeiten Verkehr mit einer einzigen Steckdose, müssen Sie einen Dual-Stack erstellen Socket, das ist ein IPv6-Socket, bei dem die Option IPV6_V6ONLY
deaktiviert ist.
Siehe MSDN-Dokumentation für weitere Informationen:
Dual-Stack Sockets for IPv6 Winsock Applications
Um sowohl IPv4 als auch IPv6 unter Windows XP mit Service Pack 1 (SP1) und Windows Server 2003, eine Anwendung zu unterstützen, hat um zwei Sockets zu erstellen, einen Socket zur Verwendung mit IPv4 und einen Socket zur Verwendung mit IPv6. Diese beiden Sockets müssen von der Anwendung getrennt behandelt werden.
Windows Vista und höher bieten die Möglichkeit, einen einzelnen IPv6-Socket zu erstellen, der sowohl IPv6- als auch IPv4-Datenverkehr verarbeiten kann. Beispielsweise wird ein TCP-Abhörsockel für IPv6 erstellt, in den Dual-Stack-Modus versetzt und an Port 5001 gebunden. Dieser Dual-Stack-Socket kann Verbindungen von IPv6-TCP-Clients mit Port 5001 und von IPv4-TCP-Clients mit Port 5001 akzeptieren. Diese Funktion ermöglicht einen stark vereinfachten Anwendungsentwurf und reduziert den Ressourcenaufwand, der für die Buchung von Operationen auf zwei separaten Sockets erforderlich ist.
- 1. Bind-Buchse auf Windows
- 2. UDP Broadcast und Unicast über die gleiche Buchse?
- 3. Anforderungen lib arbeitet in Windows und Timeout in Linux
- 4. Java IPv4-Adresse erhalten
- 5. Ist es in Ordnung, Linux-Code zu verwenden, der auf cygwin für die Produktion in Windows kompiliert wurde?
- 6. ipv4.fiddler, wie funktioniert es?
- 7. Namespace Autoload arbeitet unter Windows, aber nicht auf Linux
- 8. Wie ein Popup-Menü in Swing zu implementieren, die sowohl unter Windows und Linux arbeitet
- 9. Wie Buchse io und Buchse io Client
- 10. Wie von Linux auf Android Bluetooth-Buchse verbinden
- 11. lesen Datei, nicht gleiche Ergebnis auf Windows oder Linux
- 12. Windows, Linux und Speicherverwaltung
- 13. malloc_size Alternative auf Linux und Windows
- 14. Wie bekomme ich die IPv4-Adresse einer Schnittstelle mit libnl3 (netlink Version 3) auf Linux?
- 15. Ausführen einer EXE unter Windows, die unter Linux kompiliert wurde
- 16. Wie man Daten von MariaDB auf Linux exportiert und es in MariaDB auf XAMPP Windows
- 17. "golang.org/x/net/ipv4" arbeitet am Mac, aber nicht unter Linux
- 18. Linux-Befehlszeile auf Windows „ls“
- 19. Wie kann ich Threading verwenden, um Daten zu erhalten und Daten auf die gleiche Textdatei
- 20. Mit Java 6, unter Linux, wie kann ich sicherstellen, einen IPv4-Socket zu verwenden?
- 21. Dateipfadnamen für Windows und Linux
- 22. "Linux AIO" und "Linux Native AIO" sind das Gleiche?
- 23. Die gleiche Zufallszahl erhalten
- 24. Hashlib in Windows und Linux
- 25. .Click in einem Onchange funktioniert nicht auf Mac OS, sondern arbeitet auf Windows/Linux
- 26. Ausgabeunterschiede in Linux und Windows?
- 27. Erhalten Besucher ipv4 hinter cloudflare
- 28. Wie erzwinge Jetty, um IPv4 zu verwenden
- 29. Zugriff auf Ordner von Linux-Maschine von Windows und Linux
- 30. fread/ftell anscheinend unter Windows gebrochen, arbeitet unter Linux
Willkommen bei stackoverflow.com. Bitte nehmen Sie sich etwas Zeit, [die Hilfeseiten] (http://stackoverflow.com/help) zu lesen, besonders die Abschnitte mit dem Namen ["Welche Themen kann ich hier fragen?"] (Http://stackoverflow.com/help/) on-topic) und ["Welche Art von Fragen sollte ich vermeiden zu fragen?"] (http://stackoverflow.com/help/dont-ask). Auch bitte [nehmen Sie die Tour] (http://stackoverflow.com/tour) und [lesen Sie, wie man gute Fragen stellt] (http://stackoverflow.com/help/how-to-ask). Schließlich erfahren Sie, wie Sie ein [minimales, ** vollständiges ** und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) erstellen können. –
Schauen Sie [hier] (https://stackoverflow.com/questions/8835322/api-using-sockaddr-storage) und [hier] (http://www.tenouk.com/Winsock/Winsock2example7.html) –