Broadcast   otázka

VB.NET

Zdravím,

jsem tu znovu s tim mým slavným broadcastem. Snažil jsem se ho rozchodit, trochu jsem googlil a jsem zmatený ještě víc než na začátku.

Udělal jsem si jednoduchý chatovací prográmek, na jedné straně pošlu přes UDP text a ten se mi zobrazí na druhé straně.

Pokud zadám IP druhého počítače který poslouchá a port na kterém poslouchá funguje to ok. Měl jsem zato, že pokud jeho IP adresu zaměním za broadcastovou 255.255.255.255 a port nechám stejný jako předtím, bude to fungovat stejně jako předtím (tzn. text dojde na cílovou aplikaci protože poslouchá na mnou zadaném portu, rozdíl by měl být jen v tom, že kdyby těch aplikací bylo na síti několik, tak ta zpráva dojde všem). Mně se bohužel na cílovém PC nic nezobrazí.

A aby toho nebylo málo tak jsem googlil a našel nejrůznější kalkulačky, které vám podle vaší IP a masky podsítě spočítají broadcastovou adresu (jako třeba http://chinese-watercolor.com/LRP/broadc... ) . To znemaná že broadcastová adresa není vždycky 255.255.255.255 ?

Abych se přiznal mám v tom trochu zmatek. Pochopil jsem že se tak dají posílat data po síti pro předem neznámý počet uživatelů a kdo chce tak může poslouchat (stejně jako třeba rozhlasové a televizní vysílání, prostě vysílám a je mi jedno zda někdo poslouchá nebo ne). Když vysílání prošvihnu (připojím se pozdě) tak mám smůlu a zpětně si nemůžu data vyžádat.

S čím mam ale problém je implementace. Hlavně zda je pro broadcast určen nějaký spešl port, nebo zda si ho můžu zvolit jako při bežné komunikaci (tak předpokládám že to funguje, protože v opačném případě bych mohl na každém PC poslouchat jenom jeden broadcast kanál což je blbost.)

Nemohl by sem někdo v kostce napsat jak tedy broacast funguje a co se s ním dá a nedá dělat?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Použijte ten System.Net.PeerToPeer, potom budete moct vysílat data všem počítačům v určité skupině, aniž byste musel znát jejich IP adresy nebo něco broadcastovat (nutné je znát pouze název skupiny).

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Já bohužel System.Net.PeerToPeer nemohu nikde najít. Je dostupný i v .Net 2 ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je dostupný ve verzi 3.5.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Broadcast adresa samozřejmě nemusí být vždy ve tvaru 255.255.255.255 - to je takový zažitý omyl.Broadcast adresu je lepší používat vždy pro danou síť či podsíť.Např. pokud máme LAN 192.168.1.0 typu C(takže maska sítě je 255.255.255.x),pak je rozsah IP pro adresaci 192.168.1.1-254 a broadcast IP je 192.168.1.255.Pokud se odešle paket na broadcast adresu,tak se paket rozešle na všechna zařízení,protože jako cílová adresa MAC je ve tvaru FF:FF:FF:FF:FF:FF,tudíž ji přijmou všechny zařízení(síťová rozhraní) v rámci LAN.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zdravim opet ... ok zkusim jeste doplnit par informaci.

Chce to trosku tusit jak funguji IP adresy a veci, kterym se nadava Subnet.

IP zapisujem jako ctyri nejaka cisla s tim, ze casto si muze vsimnout na LANkach, ze ty zacatky sou stejne a meni se treba jen posledni cislo ... to ma co do cineni s Subnetem a sitovou maskou.

Sitova maska vlastne rika, ktere casti te IP se mohou menit a tim vymezi nejaky subnet. Priklad: adresa 192.168.0.1 maska 255.255.255.0 .. nejbeznejsi vec na domacich lankach. Maska rika, ze prvni tri cisla jsou vesmes napevno a posledni se muze menit. Takze vim, ze jakakoliv adresa 192.168.0.X bude v jednom subnetu. Ale muze to byt i zakernejsi - muze to byt treba 255.255.0.0 ... tam uz se mi budou menit dve posledni cisla (a bude to setsakra velky subnet).

Broadcast adresa je pak povetsinou posledni nebo predposledni mozna adresa v danem subnetu ... takze rekneme 192.168.0.255.

Ta adresa 255.255.255.255 je teoreticky broadcastova adresa pro ten nejvetsi mozny existujici subnet, ktery se ale vlastne nevyskytuje - znamenalo by to asi "vsechny propojene site na celem svete". Proto sme se i v jinem vlakne o nem trosku hadali - neni dobre ho pouzivat. Ma jednu vyhodu - je vsude stejny.

Ty potrebujes tedy broadcastovou adresu subnetu, ve kterem se prave nachazis - tam je nevyhoda, muze pro kazdou sit byt rozdilna (prave podle toho jaka tam je zrovna nastavena maska). Ale da se to docela dobre i spocitat.

Bohuzel trosku ti jeste zkomplikuju zivot zminkou o binarnim zapisu IP adresy ... protoze ty ctyri cisla IP adresy se daji zapsat binarne pekne vedle sebe stejne jako maska. Maska pak ma hromadu jednicek z leva a nejake nuly na pravo. Kdyz bys napsal masku pod IP tak by ti ukazala, ktere casti IP adresy jsou pevne a ktere se mohou menit (pevne sou ty, kde ma maska jednicky, menitelne kde ma maska nuly).

Muzes se taky dost casto setkat se zapisem 192.168.0.1-24 ...coz neznamena 1 az 24, ale 24 bude maska. Rika to presne 24 jednicek a zbytek nuly -> 255 255 255 0. Muze tam byt i jine cislo, treba 18 a tedy 255.255.192.0 - ale s tim se asi nesetkas, pouziva se to tam, kde se predpoklada sit vetsi nez nejakych tech 240 pocitacu - vetsinou uz administratori sahnou po vetsich maskach jako 255.255.0.0, ono to pak lepe vypada.

Pokud bys totiz nenasel lepsi zpusob jak to spocitat, tak prez tohle se to da spocitat snadno.

Logickejma operacema treba takhle (IP and MASK) or (NOT MASK).

No a protoze to stejne mozna desne blbe pisu ... http://en.wikipedia.org/wiki/Subnetwork ... tady to maj jeste nejako lepe :-)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback