2016-09-29 9 views
0

GCDAsyncSocket (7.5.0)을 사용하는 매우 간단한 TCP 클라이언트/서버 구현이 있으며 서비스 검색에 NSNetService을 사용하고 있습니다. 로컬 wifi 네트워크에서만 사용되며 2 년 동안 아무런 문제없이 작동합니다. GCDAsyncSocket을 올바르게 사용하고 있습니다.GCDAsyncSocket 클라이언트/서버가 iOS 액세스 포인트를 통해 작동하지 않습니다

... 클라이언트와 서버가 연결되는 Wi-Fi 네트워크를 제공하는 액세스 포인트로 세 번째 iOS 기기를 사용할 때까지 시도했습니다.

세 번째 iOS 기기가 블루투스를 통해 연결을 공유하여 클라이언트와 서버를 모두 연결하는 경우와 동일합니다.

서비스 발견은 OK입니다,하지만 난 IP 주소와 포트를 일단, 나는 연결이 오류를 얻을 수 없습니다

Error Domain=NSPOSIXErrorDomain Code=64 "Host is down" UserInfo={NSLocalizedDescription=Host is down, NSLocalizedFailureReason=Error in connect() function}

내가 (둘 다 제공되는 IPv4 및 IPv6에 제한 시도를 서비스 발견에 의해), 나는 또한 GCDAsyncSocket 저장소와 다양한 매개 변수의 ipv6 git 브랜치를 사용하여 시도했다.

내 기본 질문은 : 가능한 경우 Wi-Fi 또는 블루투스 iOS 액세스 포인트를 통해 간단한 TCP 연결을 설정하는 것입니다.

내 보조 질문은 다음과 같습니다. NSNetService 서비스 검색이 단순 TCP 연결이 아닌 이유는 무엇입니까? 프로토콜이 비교할 만하지 만 여전히 혼란 스럽다는 것을 알고 있습니다.

답변

1

내게 들리 네 문제는 셀룰러 네트워크 연결 문제입니다. 셀 네트워크에 연결되면 IP 주소와 관련된 문제가 발생합니다. Cocoaasyncsocket Github page에서이 토론을 참조하십시오.

+0

예, 그렇습니다. 내가 연결을 만들 수있는 해결 방법을 찾을 수 있으면 좋겠지 만, 내가 어떻게 이것을 달성 할 수 있는지 명확하지 않다. 내 서버의 IP를 찾을 수 없다면 클라이언트가 어떻게 연결할 수 있는가? –