菜鸟教程小白 发表于 2022-12-11 17:44:51

ios - 接收 UDP 消息


                                            <p><p>我在特定端口接收消息时遇到问题。发送工作正常。</p>

<p>代码如下:</p>

<pre><code>import Foundation
import CocoaAsyncSocket


class InSocket: NSObject, GCDAsyncUdpSocketDelegate {

//let IP = &#34;192.168.1.196&#34;
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(&#34;ErrorReceive&#34;)}
}


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)

}
}
</code></pre>

<p>我在网络统计中看到应用程序正在接收数据包:
<a href="http://i.stack.imgur.com/MNz2z.png" rel="noreferrer noopener nofollow">Packets</a> </p>

<p>但我在控制台中看不到任何内容。
一些想法?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在委托(delegate)函数前添加:func udpSocket(....) 那个属性</p>

<p>@objc(udpSocket:didReceiveData:fromAddress:withFilterContext:)</p>

<p>XCode 8 会发出警告,但不要注意,UDP 数据包会到达。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 接收 UDP 消息,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39882633/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39882633/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 接收 UDP 消息