2012-04-26 4 views
0

CocoaAsyncTask를 사용하고 localhost에 연결하려고합니다.CocoaAsyncTask가 실제 장치에 연결할 수 없습니다.

if(![socket connectToHost:@"localhost" onPort:8080 error:nil]) { 
    NSLog(@"Error.."); 
} 
-(void)socket:(GCDAsyncSocket *)socket didConnectToHost:(NSString *)host: port:(uint16_t)port { 
    NSLog(@"Connected"); 
} 

: 코드가 .. 내가 시뮬레이터에서 실행하면 , 그것은 (I가 제공하는 에코 서버를 확인하고 있습니다) 작동하지만 실제 장치에서 실행하면 아무 일도 발생하지 않습니다 어떤 아이디어? 감사합니다.

+0

8080? – Till

+0

포트 자체는 중요하지 않습니다. 4444도 사용하려고했습니다. 지금은 문자열 보내기. 그것은 시뮬레이터에서 작동합니다. 장치가 아닙니다. –

+0

따라서 서버와 클라이언트 모두를 비 jailbroken 장치에서 실행하고 있습니까? – Till

답변

2

로컬로 설치되지 않은 서버에 연결을 시도하는 동안 주소가 "localhost"로 제공됩니다 (local = 동일한 호스트 및 인터페이스에 있음). wikipedia entry on "localhost"을 참조하십시오.

시뮬레이터에서 작동하는 것처럼 Mac의 네트워킹 인터페이스를 사용하므로 "localhost"는 서버뿐만 아니라 클라이언트를 실행하는 시스템을 의미합니다.

귀하의 호스팅 시스템 (예 : Mac)의 로컬 IP 주소를 제공해야합니다. 일반적으로 이는 192.168.1.100 또는 192.168.0.100과 비슷하지만 그 내용에 대해보다 정확하게 설명합니다.

192.168.xxx.xxx = 클래스 C가 아닌 라우팅 어드레스

10.xxx.xxx.xxx = 클래스 라우팅 할 어드레스

XXX 스탠드 용 반면 0에서 255 사이의 값입니다.

로컬 IP 주소를 확인하려면 시스템 환경 설정을 사용하십시오. ->네트워크 패널. 에 대한 상태 아래의 값을 확인 "... IP 주소 xxx.xxx.xxx.xxx"

enter image description here

당신이 포트에서 제공되는 iOS 장비 자체에 기대하고 어떤 서비스
+0

나는 시험해 보았다. 어느 쪽이든 작동하지 않았습니다. www.whatismyip.com 에서 내 ip를 확인했습니다 –

+0

로컬이 아닌 주소를 시도했지만 방화벽이 설치된 라우터를 사용할 경우 Mac에 연결할 수 없습니다. 방화벽에서 해당 포트를 열거 나 로컬 주소를 사용하십시오. – Till

+0

나는 tommorow를 쏜다. 로컬 네트워크 외부에서 테스트하기 위해 비 로컬 주소를 사용하려면 www.whatismyip.com (또는 ipconfig ..)에서 얻은 주소로 테스트하고 라우터의 포트를 열어야합니까? 그게 다야? –

관련 문제