2013-04-08 3 views
0

Я пытаюсь сделать простое соединение сокетов TCP с iPad.IPad TCP Connection Socket тайм-аут (код 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 Async Sockets.

+0

Спасибо для вашей помощи вы правы, это было на сервере. – Derek