【发布时间】:2021-05-20 17:06:09
【问题描述】:
我有一个应用程序,通常所有设备都显示在起始页上,这些设备连接到特定的 Wifi(接入点)。由于新的 iOS 更新,没有显示任何设备,并且在日志中显示“没有路由到主机”。如果发现了与此问题类似的问题,但没有找到答案。
(此代码来自以前的开发人员,我对 iOS/swift 编码还很陌生,所以我很抱歉......)
尝试发送广播时出现错误...请参阅下面的代码。
open func sendBroadcast(_ data: Data) throws {
if responseSource == nil {
try createSocket()
}
guard let source = responseSource else { return }
let UDPSocket = Int32(source.handle)
let socketLength = socklen_t(address.sin_len)
try data.withUnsafeBytes { (broadcastMessage) in
let broadcastMessageLength = data.count
let sent = withUnsafeMutablePointer(to: &address) { pointer -> Int in
let memory = UnsafeRawPointer(pointer).bindMemory(to: sockaddr.self, capacity: 1)
return sendto(UDPSocket, broadcastMessage.baseAddress, broadcastMessageLength, 0, memory, socketLength)
}
guard sent > 0 else {
if let errorString = String(validatingUTF8: strerror(errno)) {
debugPrint("UDP connection failed to send data: \(errorString)")
}
closeConnection()
throw ConnectionError.sendingMessageFailed(code: errno)
}
if sent == broadcastMessageLength {
// Success
debugPrint("UDP connection sent \(broadcastMessageLength) bytes")
}
}
}
感谢任何帮助。
【问题讨论】: