Mijn vraag
Ik heb 1~45 servers, en wil deze automatisch detecteren. Verdere communicatie is allemaal naar één specifieke server. Wat is hier de beste manier voor, een multicast groep waar ik maar enkele pakketten naar stuur of een broadcast sturen en op die manier alle servers detecteren?
Het netwerk is sowieso een afgesloten geheel, er gaat niets anders op zitten dan een controller en 1~45 servers. Het is dus niet heel belangrijk om rekening te houden met overige devices op het netwerk.
Relevante software en hardware die ik gebruik
De servers zelf wil ik schrijven in C/C++ en draaien op een Raspberry Pi of iets soortgelijks, de client welke het detecteren moet gaan doen wil ik bij voorkeur in Java maken vanwege de platform onafhankelijkheid.
Wat ik al gevonden of geprobeerd heb
Omstreeks 2004 heb ik dit vaker gedaan in Visual Basic 6, maar hier heb ik voor zover ik weet altijd een broadcast gestuurd. Het doel is enkel om de andere machines te detecteren, en te detecteren wat hun mogelijkheden zijn (ze kunnen I²C, SPI en/of WS2812 LED strips aanbieden).
De communicatie welke ik nodig denk te hebben:
Hierna zou de client genoeg moeten weten om de servers in een lijst te plaatsen en de benodigde services aan te roepen.
Ik heb 1~45 servers, en wil deze automatisch detecteren. Verdere communicatie is allemaal naar één specifieke server. Wat is hier de beste manier voor, een multicast groep waar ik maar enkele pakketten naar stuur of een broadcast sturen en op die manier alle servers detecteren?
Het netwerk is sowieso een afgesloten geheel, er gaat niets anders op zitten dan een controller en 1~45 servers. Het is dus niet heel belangrijk om rekening te houden met overige devices op het netwerk.
Relevante software en hardware die ik gebruik
De servers zelf wil ik schrijven in C/C++ en draaien op een Raspberry Pi of iets soortgelijks, de client welke het detecteren moet gaan doen wil ik bij voorkeur in Java maken vanwege de platform onafhankelijkheid.
Wat ik al gevonden of geprobeerd heb
Omstreeks 2004 heb ik dit vaker gedaan in Visual Basic 6, maar hier heb ik voor zover ik weet altijd een broadcast gestuurd. Het doel is enkel om de andere machines te detecteren, en te detecteren wat hun mogelijkheden zijn (ze kunnen I²C, SPI en/of WS2812 LED strips aanbieden).
De communicatie welke ik nodig denk te hebben:
code:
1
2
3
4
5
| Client => broadcast ("Wie is daar?") Server1 => Client ("Ik ben er, IP is 123.123.123.123, services zijn I²C en SPI") Server2 => Client ("Ik ben er, IP is 123.123.123.124, services zijn I²C en WS2812 (10x10 LEDs)") ... Server9 => Client ("Ik ben er, IP is 123.123.123.132, services zijn I²C, SPI en WS2812 (1x1 LED)") |
Hierna zou de client genoeg moeten weten om de servers in een lijst te plaatsen en de benodigde services aan te roepen.