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);
0
A
답변
2
단일 소켓 모두 IPv4 및 IPv6 트래픽, 당신은 듀얼 스택을 만들어야합니다 를 사용하기 위해서 리눅스에서 일하고 있었다 소켓은 IPV6_V6ONLY
옵션이 비활성화 된 IPv6 소켓입니다.
자세한 내용은 MSDN 문서를 참조하십시오 :
Dual-Stack Sockets for IPv6 Winsock Applications 서비스 팩 1 (SP1) Windows XP에서 IPv4와 IPv6 모두를 지원하기 위해
및 Windows Server 2003에서, 응용 프로그램이 두 개의 소켓, IPv4와 함께 사용하기위한 하나의 소켓 및 IPv6과 함께 사용하기위한 하나의 소켓을 만듭니다. 이 두 소켓은 응용 프로그램에서 개별적으로 처리해야합니다.
Windows Vista 이상에서는 IPv6 및 IPv4 트래픽을 모두 처리 할 수있는 단일 IPv6 소켓을 만들 수 있습니다.. 예를 들어, IPv6 용 TCP 수신 대기 소켓이 만들어지고 이중 스택 모드로 전환되어 포트 5001에 바인딩됩니다.이 이중 스택 소켓은 포트 5001에 연결하는 IPv6 TCP 클라이언트와 포트 5001에 연결하는 IPv4 TCP 클라이언트의 연결을 허용 할 수 있습니다. 이 기능을 사용하면 크게 단순화 된 응용 프로그램 설계가 가능하며 두 개의 개별 소켓에서 게시 작업에 필요한 자원 오버 헤드를 줄일 수 있습니다.
관련 문제
- 1. 소켓을 사용하여 Keep-Alive 패킷을 수동으로 보내기
- 2. Python Windows에서 소켓을 사용하여 이더넷 프레임을 읽으시겠습니까?
- 3. 패킷을 보내는 호스트의 이름을 얻는 방법
- 4. Raw 소켓을 사용하여 UDP 패킷을 검색하지 않습니다.
- 5. RAW 소켓을 사용하여 모든 ICMP 패킷을 스니핑하는 방법
- 6. ipv4 및 ipv6이 무엇인지 알고 싶습니까?
- 7. adb 소켓을 사용하여 전화에서 결과를 얻는 방법?
- 8. jquery로 ipv4 ip 주소를 얻는 방법?
- 9. 자바 6을 사용하면, 리눅스에서 어떻게 ipv4 소켓을 사용할 수 있습니까?
- 10. IPv4 매핑 된 IPv6 주소에서 IPv4 주소를 확인하는 방법은 무엇입니까?
- 11. 파이썬 소켓을 사용하여 ICMP 및 TCP 요청을 스니핑하는 방법
- 12. IPv6의 IP 제한 속도/금지
- 13. gsoap IPv4 및 IPv6
- 14. 소켓을 닫기 직전에 데이터 패킷을 전송합니다.
- 15. 레일 3에서 IPv4 및 IPv6 형식을 확인합니다.
- 16. 원시 소켓을 사용하여 들어오는 패킷과 나가는 패킷을 모두 캡처합니다.
- 17. 알고있는 MAC 주소와 ipv4 주소를 사용하여 이더넷 어댑터에서 FPGA로 UDP 패킷을 보내야합니다.
- 18. Windows에서 인터넷을 통해 패킷을 캡처하고 인쇄하려면 어떻게합니까?
- 19. SD_RECEIVE를 사용하여 소켓을 종료해도 피어가 패킷을 보내면 어떻게됩니까? (winsock)
- 20. node.js의 원시 소켓을 지원합니다. 핑 패킷을 만드시겠습니까?
- 21. Windows에서 git 코드를 얻는 방법
- 22. Windows에서 올바른 시스템 경로를 얻는 방법
- 23. Windows에서 작동하는 pycassaShell을 얻는 방법?
- 24. Windows에서 프로세스 별 디스크 작업을 얻는 방법
- 25. Java에서 IPv4 및 IPv6를 모두 지원하는 방법
- 26. 특정 인터페이스에서 소켓을 열고 IPv4 및 IPv6 트래픽을 모두 수신하는 방법
- 27. PHP에서 데이터 그램 패킷을 얻는 방법
- 28. UDP_CORK을 사용하여 UDP 소켓을 올바르게 설정하는 방법
- 29. IPv6의 DHCP, 옵션 82
- 30. 모든 NIC에서 IPv4 및 IPv6을 사용하여 UDP 메시지 브로드 캐스트
안녕하세요, stackoverflow.com. [도움말 페이지] (http://stackoverflow.com/help), 특히 [여기서 어떤 주제에 관해서 물어볼 수 있습니까?] (http://stackoverflow.com/help/) 섹션을 읽어보십시오. on-topic) 및 [ "어떤 유형의 질문을하지 않아야합니까?"] (http://stackoverflow.com/help/dont-ask). 또한 [둘러보기] (http://stackoverflow.com/tour)와 [좋은 질문을하는 방법에 대해 읽어보십시오.] (http://stackoverflow.com/help/how-to-ask). 마지막으로 [Minimal, ** Complete ** 및 Verifiable Example] (http://stackoverflow.com/help/mcve)를 만드는 방법을 배우십시오. –
[여기] (https://stackoverflow.com/questions/8835322/api-using-sockaddr-storage) 및 [여기] (http://www.tenouk.com/Winsock/Winsock2example7.html)를보십시오. –