2015-12-18 2 views
2

Я пытаюсь реализовать приложение для чата на основе Socket, используя Swift в языке frontend и Python для внутренних. Я следовал учебнику http://www.raywenderlich.com/3932/networking-tutorial-for-ios-how-to-create-a-socket-based-iphone-app-and-server и реализовал сокет в терминале и подключился с помощью telnet localhost 80 и успешно подключился к серверному сокету. Но когда я пытался связаться с серверным сокетом из приложения iPhone, он никогда не подключается. Мой кодПрограммирование сокетов readStream! .takeUnretainedValue() принимает бесконечное время

var readStream: Unmanaged<CFReadStream>? 
var writeStream: Unmanaged<CFWriteStream>? 
CFStreamCreatePairWithSocketToHost(nil, "localhost", 80, &readStream, &writeStream) 
if readStream != nil && writeStream != nil { 
    inputStream = readStream!.takeRetainedValue()// program halts here and not going to next line 
    outputStream = writeStream!.takeUnretainedValue() 
} 
self.inputStream.delegate = self 
self.outputStream.delegate = self 
self.inputStream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) 
self.outputStream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode:  NSDefaultRunLoopMode) 
self.inputStream.open() 
self.outputStream.open() 

Выполнение кода останавливается, когда он достигает линии

inputStream = readStream!.takeRetainedValue() 

Так что же нужно сделать, чтобы правильно выполнить программу и получить вызов на сервер.?

ответ

2

Я нашел решение самостоятельно. я использовал

var inputStream = NSInputStream() 
var outputStream = NSOutputStream() 

вместо

var inputStream: NSInputStream! 
var outputStream: NSOutputStream! 

и заменить их решить мою проблему.

Смежные вопросы