接收UDP消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接收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)

}
}

我在网络统计中看到应用程序正在接收数据包:Packets

但我在控制台中看不到任何内容。一些想法?

答案

在委托函数之前添加:func udpSocket(....)该属性

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

XCode 8会发出警告,但不注意,UDP数据包会到达。

以上是关于接收UDP消息的主要内容,如果未能解决你的问题,请参考以下文章

接收 UDP 消息

UDP - 是否可以在一次接收呼叫中接收多条消息?

发送UDP广播,接收多条消息

鸿蒙之接收UDP消息

接收UDP消息

在 C# 中接收 UDP 广播消息