응용 프로그램 테스트를 통과 할 수 없습니다. Apple의 요청에 따라 정적 IPv6 주소를 서버에 추가했습니다. 우리의 응용 프로그램으로 모든 것이 우리를 위해 작동하지만 다시 거절되었습니다. 문제는 동일하게 유지됩니다. Delphi 10.1 Berlin IDHTTP/IPv6/iOS/소켓 오류 # 51 네트워크에 연결할 수 없습니다.
그들은 오류가 발생합니다 : 그들은 시험 중에 우리의 서버에 연결할 수없는 이유Socket Error #51 Network is unreachable.
그것은 불분명?
무엇이 잘못 되었습니까? IPv4와 IPv6을 지원해야합니까?
우리는에 다음과 같은 구성 요소를 사용
클라이언트 :
- idHTTP
- IdSSLIOHandlerSocketOpenSSL
서버 :
- IdHTTPServer
- IdServerIOHandlerSSLOpenSSL
서버는 정적 IPv6 주소를 가지고 있으며, 그것은 사용할 수 있습니다.
try
IdSSLIOHandlerSocketOpenSSL1.IPVersion := Id_IPv6;
answerBuff := idHTTP1.Post('https://[xxxx:a0e0:bad:bad::53]:8001/', tmpPostRequestData);
except
IdSSLIOHandlerSocketOpenSSL1.IPVersion := Id_IPv4;
answerBuff := idHTTP1.Post('https://xx.85.157.25:8001', tmpPostRequestData);
end;
우리는 도메인 이름 만 직접 주소를 사용하지 마십시오
우리는 다음과 같은 방법으로 연결을 처리합니다. 서버 IPv6 주소를 사용할 수 있습니다. 제발 도와주세요.
영어를 용서하십시오.
당신은'TIldHTTP' 자신의'IPVersion' 속성 대신'SSLIOHandler' 속성을 설정해야합니다. 'TIdHTTP'는 전달 된 URL로부터 자동적으로 IP 버전을 결정하기 때문에, IP 주소를 사용할 때'IPVersion'을 수동으로 지정할 필요는 없습니다. 호스트 이름을 사용할 때만 (대괄호로 묶지 않은 경우). IPv6 주소를 요청할 때 장치가 IPv6 네트워크에 연결되어 있는지 확인 했습니까? 앱을 스토어에 제출하기 전에 Apple의 가이드 라인에 따라 현지 테스트를 수행 했습니까? –
@ RemyLebeau - 대단히 감사합니다. 다음은 Apple 직원이 작성한 것입니다. –
@RemyLebeau > IPv6 네트워크에 연결된 Wi-Fi에서 iOS 11.0.2를 실행하는 iPhone 6에서 리뷰했을 때 앱에서 하나 이상의 버그가 발견되었습니다. --- 다음 코드를 사용하는 테스트 응용 프로그램이 있습니다. > IdSSLIOHandlerSocketOpenSSL1.IPVersion : = Id_IPv6; answerBuff : = idHTTP1.포스트 ('https : // [2a03 : a0e0 : 나쁜 : 나쁜 : 53] : 8001 /', tmpPostRequestData); 응용 프로그램이 제대로 작동하며 연결되어 있습니다. 그러나 Apple에 동일한 코드를 가진 버전을 보내면 어떤 이유로 그들은 연결할 수 없습니다. –