Delegado de flujo no receptivo en Swift

Así que estaba jugando con sockets en Swift e intentando conectar la aplicación con mi servidor. Estaba haciendo que la aplicación se conectara a la dirección IP del servidor y usabanetcat en el servidor para probar. Durante la ejecución, la salida de la consola de la aplicación mostró que se había conectado con éxito al servidor. Sin embargo, el delegado de flujo no parece responder. Cuando escribí ennetcat, la consola de la aplicación no imprimió nada. He buscado durante bastante tiempo y descubrí que mi implementación es bastante similar a la de otros. Quizás me estoy perdiendo algo aquí que no veo.

Cualquier idea sobre este problema sería muy apreciada.

El código se adjunta a continuación:

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")
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta