Chỉ cần cố gắng Bonjour trong nhanh chóng 3Swift 3 cách giải quyết IP NetService?
Đây là mã của tôi, tôi có thể nhận được các đại biểu
func netServiceDidResolveAddress(_ sender: NetService) {
print("netServiceDidResolveAddress service name \(sender.name) of type \(sender.type)," +
"port \(sender.port), addresses \(sender.addresses)")
}
Và đây là kết quả của tôi
netServiceDidResolveAddress tên dịch vụ Mac mini kiểu _myapp Webber ._tcp., cổng 5678, địa chỉ Tùy chọn ([< 1002162e c0a80205 00000000 00000000>, < 1c1e162e 00000000 fe800000 00000000 00bce7ad 24b4b7e8 08000000>])
c0a80205 là IP Tôi tìm kiếm => 192.168.2.5
Và địa chỉ là [Data], Apple nói
Các địa chỉ của dịch vụ. Đây là một NSArray của các cá thể NSData, mỗi trong số đó chứa một cấu trúc đơn sockaddr phù hợp để sử dụng với kết nối (2). Trong trường hợp không có địa chỉ nào được giải quyết cho dịch vụ hoặc dịch vụ chưa được giải quyết, NSArray trống sẽ được trả về .
Tôi vẫn nhầm lẫn lý do Dữ liệu không thể sử dụng .tyty? Như Apple nói "Đây là NSArray của các cá thể NSData" Nhưng tôi không thể sử dụng nó như NSData
Và cách giải quyết địa chỉ dưới dạng chuỗi IP có thể đọc được?
tôi cố gắng này trước đây, nhưng không nhận được kết quả như tôi trừ ...
let thedata = NSData(bytes: sender.addresses, length: (sender.addresses?.count)!)
var storage = sockaddr_storage()
thedata.getBytes(&storage, length: sizeof(sockaddr_storage))
if Int32(storage.ss_family) == AF_INET {
let addr4 = withUnsafePointer(&storage) {UnsafePointer<sockaddr_in>($0).pointee }
print(inet_ntoa(addr4.sin_addr));
}
Bất kỳ đề nghị sẽ được giúp đỡ, Cảm ơn