그래서 분명히 Winsock2를 상응하는, 도움이 필요. 나는 ISATAP 터널링을 사용하는 P2P IM 프로그램을 작성 중이다. netsh를 사용하여 ISATAP 터널 인터페이스를 활성화했지만 WSAIoctl()
에 명령을 보내어 IPv6 ISATAP 터널 인터페이스에 소켓을 설정하는 방법을 모르겠습니다.인터페이스 IOCTL은 : 매개 변수로 <code>ifreq</code> 구조를 그대로 사용하거나 인터페이스에 소켓을 장착에 대한 명확한 옵션이 없습니다 <code>ioctlsocket()</code> 및 <code>WSAIoctl()</code> 있습니다 <code>ioctl()</code>의
답변
WinSock 소켓은 bind()
을 통해 특정 인터페이스에 바인딩 할 수 있으며 setsockopt()
을 통해 구성 할 수도 있습니다. 예를 들어, 인터페이스와 관련된 필드를 포함합니다 (IP_ADD_MEMBERSHIP
및 IP_DROP_MEMBERSHIP
소켓 옵션 정의)를 ip_mreq
구조 및 구조 ip_mreq_source
합니다 (IP_ADD_SOURCE_MEMBERSHIP
, IP_DROP_SOURCE_MEMBERSHIP
, IP_BLOCK_SOURCE
정의하고 IP_UNBLOCK_SOURCE
소켓 옵션)가있다.
bind() 함수는 소켓을 IP 주소에 바인드합니다. Linux 소켓에서는 setsockopt() 및 ioctl()을 사용하여 특정 어댑터 네트워크 인터페이스와 소켓을 연관시킬 수 있습니다. Windows는이 프로세스를 매우 까다로워하게 만듭니다. –
WinSock은 다른 플랫폼만큼 어댑터와 IP 주소를 구별하지 않습니다. 어쨌든 어댑터에 IP가 할당되므로 IP를 소켓에 바인딩하면 IP가 할당 된 어댑터에 바인딩됩니다. 그러나 어댑터 인터페이스 정보를 얻기위한 API가 있으며 멀티 캐스팅과 같은 일부 소켓 작업은 어댑터 인터페이스를 사용합니다. –
어떤'ioctl()'연산을 WinSock으로 정확히 포팅하려고합니까? WinSock은 WinSock과 동등한 가능성이 있습니다. –
SIOCADDTUNNEL을 이식하려고합니다. Win8 PowerShell에서 ipconfig 명령을 사용하고 isatap 어댑터 인터페이스를 활성화했지만 소켓을 특정 인터페이스와 연관시키는 방법을 모르겠습니다. –