Csomag küldése több IP címre egyszer (WinSock)

Csomag küldése több IP címre egyszer (WinSock)
2010-10-31T11:06:44+01:00
2010-11-04T18:57:26+01:00
2022-11-19T17:41:55+01:00
ludasm
Sziasztok!

Az a problémám (Windows Sockettel), hogy van pl. egy 100 KByte-os adatom, amit a szerveremre csatlakozott több felhasználónak szeretném elküldeni, ez megy is külön-külön IP címre küldésnél, de akkor a sávszélesség határt szab.

Röviden így néz ki ( a csomagot annyiszor kell elküldenem ahány bejelentkező van):
küld 1.2.3.4 csomag
küld 5.6.7.8 csomag
küld 9.10.11.12 csomag
...

Nincs olyan megoldás, hogy megadom (felsorolom) az IP címeket és egyszer a csomagot, így a sávszélességbe már beférne:
küld 1.2.3.4, 5.6.7.8, 9.10.11.12 + 1*csomag


Köszönöm a válaszokat!
Mutasd a teljes hozzászólást!
Mit nem értesz? Már mondták, hogy a multicast a megoldás.
Tehát létezik egy valaki aki össze-vissza kiabál és létezik akárhány valaki aki ezt a kiabálást hallgatja (persze ha kedve van).
Nagyvonalakban ennyi.
Ha socket-es konkrét megoldást keresel, miért nem használod a google-t? Pl. itt egy nagyon érthető és egyszerű >>kiabáló és hallgató.<<
Mutasd a teljes hozzászólást!

  • Ha létezne is ilyen megoldás az legfeljebb a kódot egyszerűsítené, de a sávszélesség gondodat nem orvosolja, hisz minden egyes TCP csomag egy adott IP címre mehet*. Pontosan ugyan annyi csomag menne, mint jelenleg.

    * Ez alól kivétel a broadcast üzenet, de az meg csak egy subneten belül létezik.
    Mutasd a teljes hozzászólást!

  • Lehet, hogy rosszul fogalmaztam. Fogd úgy föl ezt mint egy rádióadót, ami adást sugároz (jelen esetben szerverem). Na most, aki bekapcsolja a készülékét (jelen esetben felcsatlakozott a szerverre), az fogja a műsort.

    Ez az, amit meg szeretnék oldani. De mondjuk ha már túl sokan csatlakoznak és nekem (szervernek) túl sok felé kell kiküldeni ugyanazokat az adatokat másodpercenként, nem tudja leadni/követni egy bizonyos sávszélességnél.

    Van erre valamilyen módszer?

    Mutasd a teljes hozzászólást!
  • Elméletileg a Windows Socket 2 már tudja a MultiCast-ot. (IPPROTO_RM)

    Soha nem használtam így nem is tudok róla többet.
    Mutasd a teljes hozzászólást!
  • Van erre valamilyen módszer?


    Van. például a peer to peer.
    Mutasd a teljes hozzászólást!
  • Jóóó, de Windows alatt WinSock-kal meg lehet-e oldani ezt?

    Például az internetes rádiók Hogy csinálják meg?
    Ha mondjuk 64kbps (8KByte másodpercenként) adják a hanganyagot és teszem azt, 10 ezren hallgatják a műsort, azt jelenti:
    8KB*10000 = 80 MEGABYTE másodpercenként, vagyis ekkora sávszélességre lenne szüksége a szervernek, ha külön-külön küldözgetné a zenét/beszédet, amit nyílván nem így oldanak meg.

    Vagy a multiplayer játékok is, Hogy csinálják a neten egyszerre monjuk 1000 játszanak, tehát ennyi koordinátának, névnek, adatnak kell játékosonként cserélődnie?
    Mutasd a teljes hozzászólást!
  • Mit nem értesz? Már mondták, hogy a multicast a megoldás.
    Tehát létezik egy valaki aki össze-vissza kiabál és létezik akárhány valaki aki ezt a kiabálást hallgatja (persze ha kedve van).
    Nagyvonalakban ennyi.
    Ha socket-es konkrét megoldást keresel, miért nem használod a google-t? Pl. itt egy nagyon érthető és egyszerű >>kiabáló és hallgató.<<
    Mutasd a teljes hozzászólást!
  • Oksi, már félig tiszta, de azt hogy tudnám korlátozni, hogy csak bizonyos személyek/gépek hallgassanak bele?

    Illetve honnan tudom, hogy azon az IP címen (GROUP) már nincs-e valaki kiabáló? Belehallgatok a porton? és ha süket én kiabálhatok?

    Mert gugliztam én is egy kicsit és még van pár dolog, például a TTL állítása, amit a te linked meg sem említ!

    Köszi a segítséget azért, kísérletezgetek vele :)
    Mutasd a teljes hozzászólást!
  • de azt hogy tudnám korlátozni, hogy csak bizonyos személyek/gépek hallgassanak bele?

    Pl. úgy, hogy nem adod meg nekik az IP:portot.

    hogy azon az IP címen (GROUP) már nincs-e valaki kiabáló?

    Hát ha a tied az IP cím... vagy én nem értem?

    ---
    Ha nem hiszed, próbálj zenét szórni a prog.hu-ról.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd