Неотвечающий потоковый делегат в Swift

Поэтому я поигрался с сокетами в Swift и пытался соединить приложение с моим сервером. Я подключил приложение к IP-адресу сервера и использовалnetcat на сервере для тестирования. Во время выполнения вывод консоли из приложения показал, что оно успешно подключено к серверу. Тем не менее, делегат потока не кажется отзывчивым. Когда я набралnetcat, консоль приложения ничего не печатала. Я долго искал и обнаружил, что моя реализация очень похожа на другие. Возможно, мне здесь чего-то не хватает, чего я не вижу.

Любая мысль к этой проблеме будет принята с благодарностью!

Код прилагается ниже:

import UIKit

class ViewController: UIViewController, StreamDelegate {

    let addr:String = "52.34.56.78"
    let port:Int = 1234

    var inputStream: InputStream?
    var outputStream: OutputStream?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.connect(host: addr, port: port)
    }

    func connect(host: String, port: Int) {

        Stream.getStreamsToHost(withName: host, port: port, inputStream: &inputStream, outputStream: &outputStream)

        if inputStream != nil && outputStream != nil {

            inputStream!.delegate = self
            outputStream!.delegate = self

            inputStream!.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
            outputStream!.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)

            inputStream!.open()
            outputStream!.open()

            print("successfully connected")
        }
        else {
            print("connection unsuccessful")
        }
    }

    func stream(aStream: Stream, handleEvent eventCode: Stream.Event) {

        if aStream === inputStream {
            switch eventCode {
            case Stream.Event.errorOccurred:
                print("input: ErrorOccurred: \(aStream.streamError?.localizedDescription)")
                break
            case Stream.Event.openCompleted:
                print("input: OpenCompleted")
                break
            case Stream.Event.hasBytesAvailable:
                print("input: HasBytesAvailable")
                break
            default:
                break
            }
        }
        else {
            print("unknown stuff happened")
        }
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос