2017-10-10 5 views
0

응용 프로그램 테스트를 통과 할 수 없습니다. Apple의 요청에 따라 정적 IPv6 주소를 서버에 추가했습니다. 우리의 응용 프로그램으로 모든 것이 우리를 위해 작동하지만 다시 거절되었습니다. 문제는 동일하게 유지됩니다. Delphi 10.1 Berlin IDHTTP/IPv6/iOS/소켓 오류 # 51 네트워크에 연결할 수 없습니다.

그들은 오류가 발생합니다 : 그들은 시험 중에 우리의 서버에 연결할 수없는 이유 Socket Error #51 Network is unreachable.

그것은 불분명?

무엇이 잘못 되었습니까? IPv4와 IPv6을 지원해야합니까?

우리는에 다음과 같은 구성 요소를 사용

클라이언트 :

  1. idHTTP
  2. IdSSLIOHandlerSocketOpenSSL

서버 :

  1. IdHTTPServer
  2. 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 주소를 사용할 수 있습니다. 제발 도와주세요.

영어를 용서하십시오.

+1

당신은'TIldHTTP' 자신의'IPVersion' 속성 대신'SSLIOHandler' 속성을 설정해야합니다. 'TIdHTTP'는 전달 된 URL로부터 자동적으로 IP 버전을 결정하기 때문에, IP 주소를 사용할 때'IPVersion'을 수동으로 지정할 필요는 없습니다. 호스트 이름을 사용할 때만 (대괄호로 묶지 않은 경우). IPv6 주소를 요청할 때 장치가 IPv6 네트워크에 연결되어 있는지 확인 했습니까? 앱을 스토어에 제출하기 전에 Apple의 가이드 라인에 따라 현지 테스트를 수행 했습니까? –

+0

@ RemyLebeau - 대단히 감사합니다. 다음은 Apple 직원이 작성한 것입니다. –

+0

@RemyLebeau > IPv6 네트워크에 연결된 Wi-Fi에서 iOS 11.0.2를 실행하는 iPhone 6에서 리뷰했을 때 앱에서 하나 이상의 버그가 발견되었습니다. --- 다음 코드를 사용하는 테스트 응용 프로그램이 있습니다. > IdSSLIOHandlerSocketOpenSSL1.IPVersion : = Id_IPv6; answerBuff : = idHTTP1.포스트 ('https : // [2a03 : a0e0 : 나쁜 : 나쁜 : 53] : 8001 /', tmpPostRequestData); 응용 프로그램이 제대로 작동하며 연결되어 있습니다. 그러나 Apple에 동일한 코드를 가진 버전을 보내면 어떤 이유로 그들은 연결할 수 없습니다. –

답변

0

우리는 해결책이 있습니다.

Wi-Fi 연결 문제가 해결되었습니다.

  1. The roots of the problem were growing due to the use of SSL. Please note that the receiving side (server) must listen to your secure traffic on port 443. Accordingly, the client must also send traffic to this port, or do not specify the port in the URL.

  2. The second part of the problem was that after a lot of failure using the domain name, I despaired and refused to use the domain name to send requests, and tried to use direct IPv4, IPv6 address. It was a wrong decision. The problem is that SSL certificates are issued to the name of my domain, but not to the addresses of the tied servers.The firewall was cursing and did not let us go any further. Just use your domain name, and use correct ports.

donaim 이름에 AAAA ns 레코드가 포함되어 있다는 것을 잊지 마십시오. Sear eng.

감사합니다. Sergey.