Tesses.Broadcast ================ [![Version](https://img.shields.io/nuget/v/Tesses.Broadcast.svg)](https://nuget.org/packages/Tesses.Broadcast) [![Downloads](https://img.shields.io/nuget/dt/Tesses.Broadcast.svg)](https://nuget.org/packages/Tesses.Broadcast) [![Version](https://img.shields.io/nuget/v/Tesses.Broadcast.Eto.svg)](https://nuget.org/packages/Tesses.Broadcast.Eto) [![Downloads](https://img.shields.io/nuget/dt/Tesses.Broadcast.Eto.svg)](https://nuget.org/packages/Tesses.Broadcast.Eto) A simple udp broadcast library Client ====== ```csharp using Tesses.Broadcast; await foreach(var item in BroadcastClient.ScanAsync("Test",6942,default)) //replace Test with your service name, replace 6942 with desired port used by server, replace default with CancellationToken { Console.WriteLine($"Found device {item.DeviceName} with {item.ServiceUrl} and with ip: {item.Endpoint}"); } ``` Server ====== ```csharp using Tesses.Broadcast; await new BroadcastServerBuilder() .WithDeviceName("Mikes Phone") //replace with the server name (any string) .WithService("Test","http://127.0.0.1:3254/") //127.0.0.1 will be rewriten by client .WithService("Other Service", "http://127.0.0.1:4949/") //another service my friend .WithPort(6942) //replace with desired port to listen on .Build() .ListenAsync(); ``` Eto === Install [this nuget package.](https://nuget.org/packages/Tesses.Broadcast.Eto) ```csharp using(var bro = new BroadcastDialog("Test",6942)) //replace Test with your service name, replace 6942 with desired port used by server { serviceUrl.Text=bro.ShowModal(); //will return empty string if cancelled } ``` Protocol ======== ## Request | Type | Name | Value | Description | | ---- | ---- | ----- | ----------- | | char[11] | Signature | "TessesBcReq" | A signature to decern a request from a random udp packet | | uint16be | NameLength | <The Length of Name> | The big endian 16 bit, byte length of Name | | char[NameLength] | Name | <The Service Name> | The Service Name, Test in the example | ## Response | Type | Name | Value | Description | | ---- | ---- | ----- | ----------- | | char[12] | Signature | "TessesBcResp" | A signature to decern a response from a random udp packet | | uint16be | DeviceNameLength | <The Length of DeviceName> | The big endian 16 bit, byte length of DeviceName | | char[DeviceNameLength] | DeviceName | <The Device Name> | The Device Name, "Mikes Phone" in this example | | uint16be | ServiceUrlLength | <The Length of ServiceUrl> | The big endian 16 bit, byte length of ServiceUrl | | char[ServiceUrlLength] | ServiceUrl | <The Service Url> | The Service Url, "http://127.0.0.1:3254/" in this example | ## Converting the url If the hostname starts with "127." or equals "localhost" replace the hostname with the remote ip (server ip) (do this on the client)