Mike Nolan 1ddd9ebd21 | ||
---|---|---|
ClientTest | ||
ServerTest | ||
Tesses.Broadcast | ||
Tesses.Broadcast.Eto | ||
Tesses.Broadcast.EtoTest | ||
libbroadcast | ||
.gitignore | ||
LICENSE.md | ||
README.md | ||
antenna-icon.png |
README.md
Tesses.Broadcast
A simple udp broadcast library
Client
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
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.
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)