socket, wyslanie informacji rozgloszeniowej (bradcast)

0

Witam,
Chce odtrzymac informacje od wszystkich komputerow w sieci. Mam na jednym kompie odpalony program serwer a na drugim program klient. Gdy lacze sie bezposrednio (przez gniazda UDP) z serwerem to otrzymuje od niego informacje, a gdy wpisze w gniazdo klienta adres BROADCAST to nie wysyla ani nie otrzymuje zadnych pakietow. Wyczytalem gdzies ze taka linia jest potrzebna:
setsockopt (sock,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on));

Ale to nic nie daje. Dlacego serwer nie odpowiada? Czy nie tak dziala BRADCAST ze wysyla do wszytskich kompow i serwer powinien mi dac odpowiedz?
Prosze o pomoc

0

Witam.
Odkopuję temat bo mam ten sam problem.
Niestety dodanie opcji

 setsockopt (sock,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on));

nie powoduje wysyłania pakietu broadcast 255.255.255.255.

Jeśli wpiszę adres 192.168.0.255, czyli tak jak dla podsieci to wtedy wysyła broadcast.

Nie wiem jak ale dosłownie kilka razy wysłał mi z adresem 255.255.255.255, niestety teraz już nie wysyła. (podgląd Wireshark)
Czy jest to jakoś w windowsie po blokowane że nie można wysyłać broadcast z adresem 255.255.255.255 ??

0

A co niby miałby oznaczać wg ciebie taki broadcast?

0

jest to broadcast uniwersalny. Rozgłaszany do wszystkich sieci. nie istotna jest wtedy maska podsieci. tak to rozumiem

0

Ja bym powiedział że raczej do żadnej a nie do wszystkich. Routery takiego pakiety nie prześlą nigdzie dalej.

A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.

0

a w takim razie da się z poziomu winsock odczytać maskę podsieci?

I dlaczego kilka razy taki pakiet został wysłany?

1 użytkowników online, w tym zalogowanych: 0, gości: 1