0

我不精通网络,但我正在启动自己的 Bonjour 服务来寻找附近的用户。我读了这篇博文,它说:

套接字代表网络上唯一的通信端点。当您的应用程序需要与另一个应用程序交换数据时,它会创建一个套接字并使用它连接到另一个应用程序的套接字。您可以通过同一个套接字发送和接收数据。每个套接字都有一个与之关联的 IP 地址和端口号(介于 1 和 65535 之间)。IP 地址唯一标识给定网络上的每台计算机,端口号唯一标识该计算机上的网络套接字。

NetServiceBrowser有一个发现附近用户的委托方法:

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)
}

它还有一种方法,我需要使用它来让它们真正相互连接:

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

一旦用户相互连接并开始共享数据,我需要创建一个数组,其中包含唯一标识每个用户的东西。我想使用,device's IP Address但我没有看到从didFind委托方法返回的。我可以使用什么来唯一标识每个设备?

4

0 回答 0