Bonjour -How to get the IP address to uniquely identify each client connected to the network

864 Views Asked by At

I'm not well versed in networking but I'm firing up my own Bonjour service to find nearby users. I read this blog post and it says:

Socket represents a unique communication endpoint on the network. When your app needs to exchange data with another app, it creates a socket and uses it to connect to the other app’s socket. You can both send and receive data through the same socket. Each socket has an IP address and a port number (between 1 and 65535) associated with it. IP address uniquely identifies each computer on a given network and port number uniquely identifies a network socket on that computer.

NetServiceBrowser has a delegate method that discovers nearby users:

func netServiceBrowser(_ browser: NetServiceBrowser, didFind service: NetService, moreComing: Bool) {

    print(service.domain)
    print(service.name)
    print(service.type)
    print(service.addresses as Any)
    print(service.hostName as Any)
    print(service.port)
}

It also has a method that I need to use to allow them to actually connect with each other:

func netService(_ sender: NetService,
                didAcceptConnectionWith inputStream: InputStream,
                outputStream stream: OutputStream) {
    print("netServiceDidAcceptConnection:\(sender)");
}

Once users are connected with each other and start sharing data I need to create an array with something that uniquely identifies each of them. I would like to use the device's IP Address but I don't see one returned from the didFind delegate method. What can I use in place to uniquely identify each device?

0

There are 0 best solutions below