Получение 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.