I am trying to get a UDP socket working in swift.
When I try to bind to the socket, by calling CFSocketSetAddress, then it returns success but prints out "CFSocketSetAddress listen failure: 102".
My callback, set with CFSocketCreate is never called when I send data.
Why would it return success but print failure in the debugger? Do I have an error in my code, shown below?
Thanks,
Pieter
var socket: CFSocket? = nil
init() {
socket = CFSocketCreate(kCFAllocatorDefault,
PF_INET,
SOCK_DGRAM,
IPPROTO_UDP,
CFSocketCallBackType.readCallBack.rawValue,
{ (socket: CFSocket?, callBackType: CFSocketCallBackType, address: CFData?, data: UnsafeRawPointer?, info: UnsafeMutableRawPointer?) -> Void in
print("callback test")
},
nil)
if socket == nil {
print("Could not create socket.")
return
}
var sin = sockaddr_in()
sin.sin_len = __uint8_t(MemoryLayout.size(ofValue: sin))
sin.sin_family = sa_family_t(AF_INET)
sin.sin_port = UInt16(6000).bigEndian
sin.sin_addr.s_addr = INADDR_ANY.bigEndian
let addressDataCF = NSData(bytes: &sin, length: MemoryLayout.size(ofValue: sin)) as CFData
let socketErr = CFSocketSetAddress(socket, addressDataCF)
switch socketErr {
case .success:
print("Success.")
case .error:
print("Error.")
case .timeout:
print("Timeout.")
}
}