This code essentially listens on port 5353 for broadcasts to the group 224.0.0.251.
public void Start()
{
try
{
UdpClient udpClient = new UdpClient();
udpClient.ExclusiveAddressUse = false;
IPEndPoint localEndpoint = new IPEndPoint(IPAddress.Any, 5353);
udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
udpClient.ExclusiveAddressUse = false;
udpClient.Client.Bind(localEndpoint);
IPAddress multicastaddress = IPAddress.Parse("224.0.0.251");
udpClient.JoinMulticastGroup(multicastaddress);
while (true)
{
Byte[] data = udpClient.Receive(ref localEndpoint);
string dataAsString = Encoding.UTF8.GetString(data);
Console.WriteLine(dataAsString);
}
}
catch (Exception exp)
{
Console.WriteLine(exp.Message);
}
}
https://tomasmcguinness.com/2018/01/22/apple-bonjour-for-net-core/
以Bonjour 为例,Airplay 投屏需要创建两个服务,分别是_raop._tcp.local和_airplay._tcp.local
一个简单的设备注册示例;主要分为两部分
创建一个ServiceInfo 实例
将刚刚创建的ServerInfo进行注册
并进行广播
https://blog.csdn.net/u010927489/article/details/121852900
A read through a few articles on Bonjour;
https://en.wikipedia.org/wiki/Bonjour_(software)
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/NetServices/Introduction.html
http://packetpushers.net/multicasting-apples-bonjour-protocol/