Я уверен, что кто-то может решить эту проблему за считанные секунды, но я очень новичок в стремительном использовании игровых площадок на iPad. Я пытаюсь изменить некоторый код SendUDP для получения вместо этого, но я не могу решить ошибку компиляции (unsafepointer не конвертируется в unsaferawbufferpointer) в строке readResult =. SEND прекрасно работает с очень похожим кодом, но я действительно изо всех сил здесь, из моей глубины ...
Вот код
func readUDP() {
guard
let addresses =
try ? addressesFor(host: "192.168.4.1", port: 80)
else {
print("host not found")
return
}
if addresses.count != 1 {
print("host ambiguous; using the first one")
}
address = addresses[0]
fd1 = socket(Int32(address.ss_family), SOCK_DGRAM, 0)
guard fd1 >= 0
else {
print("`socket` failed`")
return
}
defer {
let junk = close(fd1)
assert(junk == 0)
}
var message = [UInt8](repeating: 0, count: 1024)
let messageCount = message.count
var readResult = message.withUnsafeBytes {
(messagePtr: UnsafePointer < UInt8 > ) - > Int in
return address.withSockAddr {
(sa, saLen) - > Int in
return recvfrom(fd1, messagePtr, messageCount, 0, sa, & saLen)
}
}
guard readResult >= 0
else {
print("read failed")
return
}
print("success")
}