Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NWConnection SSDP发现未接收数据_Ios_Swift_Xcode_Udp_Ssdp - Fatal编程技术网

Ios NWConnection SSDP发现未接收数据

Ios NWConnection SSDP发现未接收数据,ios,swift,xcode,udp,ssdp,Ios,Swift,Xcode,Udp,Ssdp,我正在尝试执行SSDP发现广播,但无法从NWConnection.receive获取回复数据 Network.framework是相对较新的,没有太多的信息。我错过了什么 SSDP发现广播已发送,UPnP设备已回复。(下面是Wireshark截图) 结果是网络。framework还不支持UDP广播(2019年2月) 使用UDP尝试以下方法: connection.receiveMessage { (data, context, isComplete, error) in print(

我正在尝试执行SSDP发现广播,但无法从NWConnection.receive获取回复数据

Network.framework是相对较新的,没有太多的信息。我错过了什么

SSDP发现广播已发送,UPnP设备已回复。(下面是Wireshark截图)


结果是网络。framework还不支持UDP广播(2019年2月)

使用
UDP
尝试以下方法:

connection.receiveMessage { (data, context, isComplete, error) in

    print(data ?? "", context ?? "", isComplete, error ?? "")
}
这是一个很好的例子

我在
TCP
上遇到了相反的问题,当时正在使用
连接。receiveMessage(…)
发生了同样的事情-从未进入回调。我在网上发了一个问题。使用
TCP
时,您只能使用:

connection.receive(minimumIncompleteLength: 1, maximumLength: 65535) { data, context, isComplete, error in
    
    print(data ?? "", context ?? "", isComplete, error ?? "")
}
一位名为以下人员的苹果开发人员技术支持专家:

。TCP不是面向消息的协议,因此

receiveMessage(…)
receive(minimumIncompleteLength:maximumLength:completion:)
没有任何意义。您想要的是

receiveMessage(…)
receive(minimumIncompleteLength:maximumLength:completion:)

也就是说,使用
UDP
尝试
connection.receiveMessage(…)

感谢NWconnection示例,即使这个示例不起作用。一旦我们习惯了,NWconnection编程似乎会比CFnetwork更容易。iOS 14 beta版现在支持多播,这似乎会引起您的兴趣