Получение UDP-сообщений

У меня проблема с получением сообщений на определенный порт. Отправка работает нормально.

Код выглядит так:

import Foundation
import CocoaAsyncSocket


class InSocket: NSObject, GCDAsyncUdpSocketDelegate {

//let IP = "192.168.1.196"
let PORT:UInt16 = 14000
var isocket:GCDAsyncUdpSocket!

override init(){
    super.init()
    setupConnection()
}

func setupConnection(){

    isocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: DispatchQueue.main)
    do{
        try isocket.bind(toPort:PORT)
        try isocket.beginReceiving()
      } catch {print("ErrorReceive")}
}


func udpSocket(sock: GCDAsyncUdpSocket!, didReceiveData data: NSData, fromAddress address: NSData!, withFilterContext filterContext: AnyObject!) {
    let str = NSString(data: data as Data, encoding: String.Encoding.ascii.rawValue)
    print(str)

}
}

Я вижу в статистике сети, что приложение получает пакеты: Пакеты

Но я не вижу ничего в консоли. Некоторые идеи?

1 ответ

Добавьте перед делегатом функцию: func udpSocket(....) этот атрибут

@objc(UdpSocket:didReceiveData: FROMADDRESS: withFilterContext:)

XCode 8 выдаст предупреждение, но не обращайте внимания, будут приходить пакеты UDP.

Другие вопросы по тегам