2013-04-08 2 views
0

iPad에서 간단한 TCP 소켓 연결을 시도하고 있습니다.iPad TCP 연결 소켓 시간 초과 (코드 60)

시뮬레이터를 사용하여 일련의 코드를 실행하면 정상적으로 작동합니다.

하지만 iPad에서이 코드를 실행하면 실패합니다. Heres는

코드 ...

CFReadStreamRef readStream; 
CFWriteStreamRef writeStream; 
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.10", 19997, &readStream, &writeStream); 
inputStream = (NSInputStream *)readStream; 
outputStream = (NSOutputStream *)writeStream; 

[inputStream setDelegate:self]; 
[outputStream setDelegate:self]; 

[inputStream open]; 
[outputStream open]; 

코드에 달려 [inputStream을 오픈]; 그러면 오류가 발생합니다 :

The Operation Couldn't be completed. Operation timed out. Code 60. 

내가 여기에 간단한 것을 놓치고 있습니까? iOS 권한 또는 무엇인가? 시뮬레이터에서 왜 작동합니까? 나는 iOS 개발에 익숙하지 않다.

도움 주셔서 감사합니다.

+0

스트림을 열기 전에 실행 루프에 추가하려고 했습니까? [inputStream scheduleInRunLoop : [NSRunLoop currentRunLoop] forMode : NSDefaultRunLoopMode]; [outputStream scheduleInRunLoop : [NSRunLoop currentRunLoop] forMode : NSDefaultRunLoopMode]; http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server 형식이 잘못되어 미안 해요. 내 휴대폰에서 올리겠습니다. – badger0053

답변

1

내 iPhone에서 코드를 테스트했는데 정상적으로 작동합니다. 연결의 '상대방'은 문제 일 수 있습니다.

당신은 또한 당신이 다른 프로젝트 또는 프로젝트에서 또 다른 '점'에서 테스트 할 수 www.google.com 포트 80

와 동일한 코드를 테스트해야합니다. 어쩌면 '코드를 호출하는 곳'에 문제가있을 수 있습니다.

모든 것을 직접 작성하는 대신 이러한 연결에 기존 프레임 워크를 사용하는 것을 고려해야합니다.

Google 비동기 소켓을 사용하고 있습니다.

+0

감사합니다. 당신의 도움을 위해, 당신은 정확합니다, 그것은 서버 끝에있었습니다. – Derek