ATL 서버 CAtlHttpCLient를 사용하여 서버에 HTTP 요청을 보냅니다.CAtlHttpClient - IP6 주소로 이동하면 작동하지 않는 것 같습니다.
는 기본적으로 내 코드는 다음과 같습니다
ATL::CAtlHttpClient client;
ATL::CAtlNavigateData navigateData;
navigateData.SetSocketTimeout(60000);
navigateData.SetMethod(ATL_HTTP_METHOD_POST);
BX_TString jmfmime = "application/vnd.cip4-jmf+xml";
navigateData.SetPostData((BYTE*) msg.c_str(), msg.length(), jmfmime.c_str());
client.Navigate("http://[fe80::21a:a0ff:fec1:5917%6]:8090/someextrastuff", &navigateData);
내가 IP4 주소를 사용
모든 것이 최고의처럼 작동 연결합니다. 그러나 Navigate 기능은 IP6 주소에서 작동하지 않습니다.내부적으로 '['및 ']'문자는 URL에서 유효한 문자로 간주되지 않으며 URL은 http://%5bfe80::21a:a0ff:fec1:5917%6%5d:8090/someextrastuff
과 같이 변환됩니다. 결과적으로 URL을 구문 분석 할 수 없습니다.
CAtlHttpClient가 IP4 및 IP6 주소를 모두 지원해야한다는 것을 이해했습니다. 그래서 나는 뭔가를 놓친 것 같습니다.
다른 방식으로 IP6 주소를 지정해야합니까?
또는 Navigate 기능에서 IP 주소를 지정할 수 없으며 항상 호스트 이름을 사용해야하며 클라이언트가 항상 호스트 이름을 확인할 수 있기를 바랍니다.