Yortw / RSSDP

Really Simple Service Discovery Protocol - a 100% .Net implementation of the SSDP protocol for publishing custom/basic devices, and discovering all device types on a network.

Home Page:http://yortw.github.io/RSSDP/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SocketException running on AspNet Core on Linux

tessarolli opened this issue · comments

This code works fine on windows, but throws this error on linux.

I'm suspecting I might be missing some .deb's on the linux box, but not sure how to find out which..

Can you help me?

Thanks

Exception:
Unhandled Exception: System.Net.Sockets.SocketException: Protocol not available
at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent)
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue)
at Rssdp.SocketFactory.CreateUdpMulticastSocket(Int32 multicastTimeToLive, Int32 localPort)
at Rssdp.Infrastructure.SsdpCommunicationsServer.BeginListeningForBroadcasts()
at Rssdp.Infrastructure.SsdpDevicePublisherBase..ctor(ISsdpCommunicationsServer communicationsServer, String osName, String osVersion, ISsdpLogger log)
at TessarolliSolutions.Zeus.Program.Main(String[] args) in C:\VSTS\TS\src\Zeus API\Zeus\Program.cs:line 69

Code:
_Publisher = new SsdpDevicePublisher(new SsdpCommunicationsServer(new SocketFactory(HardwareInfo.GetIPAddress().ToString())));
_Publisher.StandardsMode = SsdpStandardsMode.Relaxed;
_Publisher.AddDevice(PublishDevice());

Hi,

The only protocol I'm aware this needs is UDP. I'm afraid I'm not familiar with Linux, 'debs' or mono, and have no device(s) on which to test this so I'm not much help.

If there is a 'deb' to add UDP support then I guess try installing that, otherwise perhaps try Googling for that error details and mono and .net.

Sorry, that is not totally accurate... UDP is used primarily, but also HTTP which also requires TCP. In the error above it looks like (multicast) UDP is what is trying to be accessed though.