我不精通网络,但我正在启动自己的 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
委托方法返回的。我可以使用什么来唯一标识每个设备?