사용자가 방화벽에서 포트를 수동으로 열 것으로 기대할 수는 없지만 방화벽이이를 허용한다는 것을 기대할 수는 없습니다.
uPNP를 사용하고 호환 라우터가 BitTorrent와 비슷한 포트 전달을 설정하는 것이 좋습니다. 나는 TCMPortMapper 프레임 워크를 가지고 행운을 빕니다. subethaedit과 같은 앱에서 프로덕션 환경에서 사용되었습니다. 마음에
TCMPortMapper *pm = [TCMPortMapper sharedInstance];
[pm addPortMapping:
[TCMPortMapping portMappingWithLocalPort:1337 # local port iPhone listens on
desiredExternalPort:13337 # remote port you want router to listen on
transportProtocol:TCMPortMappingTransportProtocolTCP
userInfo:nil]];
[pm start];
곰 : 뻔뻔 포트를 여는 것은이 같은 간단, 문서로부터 추출하려면
- 위의 요구 사항이 지속적으로 실행되고 (이 블록 메인 스레드) 포트에 대한 열려있어. 백그라운드에서 실행하고 알림을 등록하려고합니다. 보다 자세한 예제는 documentation을 참조하십시오.
- uPNP는 라우터가 주어진 포트를 열 것이라고 '요청'합니다. 거절하거나 처음부터 지원하지 않을 수 있습니다. 사용자에게 알릴 수는 있지만 성공할 수있는 방법은 없습니다. 앱에서이 문제를 해결해야합니다.
라우터에 문제가 있습니다 - 라우터에 내장 된 방화벽이 해당 포트의 트래픽을 거부합니다. iPhone에서 라우터를 마술처럼 제어 할 수는 없습니다. 가능한 경우에도 사용자는 모두 다른 라우터와 방화벽을 가지고 있습니다! – lxt