abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:11 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 30 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána nová verze 7.0 svobodného open source redakčního systému WordPress. Kódové jméno Armstrong bylo vybráno na počest amerického jazzového trumpetisty a zpěváka Louise Armstronga (What A Wonderful World).

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Bezpečnostní upozornění

    V Drupalu byla nalezena a opravena kritická zranitelnost SA-CORE-2026-004 (CVE-2026-9082). Útočník může provádět libovolné SQL dotazy na webech používajících databázi PostgreSQL.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Komunita

    Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost HP.

    Ladislav Hagara | Komentářů: 3
    včera 13:33 | IT novinky

    O víkendu proběhla demopárty Outline 2026. Publikována byla prezentovaná dema. Upozornit lze na 16 bajtové, opravdu šestnáct bajtové, zvukově obrazové demo Wake Up! 16b (YouTube).

    Ladislav Hagara | Komentářů: 2
    včera 04:22 | Nová verze

    Byla vydána nová verze 9.5 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání a na YouTube.

    Ladislav Hagara | Komentářů: 0
    19.5. 21:00 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2026. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    19.5. 19:00 | Nová verze

    Canonical vydal Ubuntu Core 26. Vychází z Ubuntu 26.04 LTS a podporováno bude 15 let. Ubuntu Core je minimální neměnný operační systém určený pro vestavěné systémy.

    Ladislav Hagara | Komentářů: 0
    19.5. 16:22 | Nová verze

    Bylo vydáno OpenBSD 7.9. Po dlouhé době opět se songem: Diamond in the Rough.

    Ladislav Hagara | Komentářů: 0
    19.5. 16:00 | Nová verze

    Byl vydán Mozilla Firefox 151.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 151 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (26%)
    Celkem 1674 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Odpoved na multicast

    23.7.2014 00:29 pp
    Odpoved na multicast
    Přečteno: 316×

    Zdravim,

    pokusam sa opravit UPnP klienta a zistil som zaujimavu vlastnost (alebo bug?) - ako ju obist?

    Najskor myslienka pre normalnych ludi: paket sa posle z 192.168.1.10 na 239.255.255.250 (multicast). Tento paket obdrzi router a odpovie unicastom z 192.168.1.1 na 192.168.1.10. Problem je, ze na 192.168.1.10 uz paket v programe neprecitam, aj ked ho podla Wiresharku dostanem.

    Kedze je program pomerne hnusny, zapisem to skoro-pseudokodom:

    sock = socket(PF_INET, SOCK_DGRAM, 0);
    bind(sock, [AF_INET, PORT, INADDR_ANY]);
    sendto(sock, buffer, n, 0, inet_addr("239.255.255.250"));
    fds[0].fd = sock;
    fds[0].events = POLLIN;
    n = poll(fds, 1, timeout);

     

    Tu nefunguje prijatie unicastovej odpovede (do programu - kernel odpoved dostane). Je pritom zaujimave, ze ked pouzijem unicastovu IP adresu v sendto, tj. ked dotaz mierim na 192.168.1.1, tak odpoved do programu po spravnosti dostanem. Odpoved sa pritom vobec nelisi.

    Kde je chyba? Preco nedostavam odpoved, ktoru cakam?

    Vdaka

    Odpovědi

    23.7.2014 14:35 Sten
    Rozbalit Rozbalit vše Re: Odpoved na multicast
    Nejsem si u multicastu jistý, ale u unicastu platí, že sockety probíhajících komunikací jsou identifikovány pomocí (protokol, vzdálený (IP, port), lokální (IP, port)). Příchozí paket ale má jinou adresu, jádro jej tak nedokáže přiřadit tomu otevřenému socketu a zahodí jej (je to UDP, o zahození se odesílatel neinformuje). Pokud chcete na multicast umožnit unicastovou odpověď, potřebujete naslouchat na příslušném portu pomocí listen (a otevřít ten port ve firewallu).
    23.7.2014 16:05 pp
    Rozbalit Rozbalit vše Re: Odpoved na multicast

    Ten listen nejde prave preto, lebo je to UDP. Pre istotu som to skusil a vracia mi to -1, errno = 95 (EOPNOTSUPP). To je v manuali vysvetlene: The socket is not of a type that supports the listen() operation.

    Diky za odpoved, ale zda sa, ze tu cesta nevedie.

    Fuky avatar 23.7.2014 17:38 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Odpoved na multicast
    Přílohy:

    Na UPD paket se čeká např. pomocí recvfrom().

    V příloze máš ukázku UDP klienta/serveru a ukázku multicast vysílače/přijímače.

    Fuky avatar 23.7.2014 17:33 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Odpoved na multicast

    Podle mě tvůj klient na 192.168.1.10 paket nepřečte, protože na něj nečeká.

    Kdyby jsi přiložil ukázkovou, co nejvíce očesanou, verzi klienta a serveru, která ti nefunguje, tak by se dalo odpovědět přesně.

    23.7.2014 22:48 pp
    Rozbalit Rozbalit vše Re: Odpoved na multicast

    Prepacte - uz som pripravil orezanu verziu programu a potom som porozmyslal o firewalle vyssie - nakoniec je to naozaj tym. Mal som tam povolene ESTABLISHED,RELATED a priama odpoved je OK, ale odpoved na multicast uz tam nespada.

    23.7.2014 23:15 Ondrej Santiago Zajicek
    Rozbalit Rozbalit vše Re: Odpoved na multicast
    Ale ceka. Mezi cekanim v recvfrom() a v poll() z hlediska socketu neni moc rozdil. Samozrejme poll() po skonceni ten paket nepreda do userspace, na to je treba nasledne zavolani recvfrom(), ale paket je prijat a zarazen do prichozi fronty socketu.

    Jinak na poslouchani na UDP neni treba zadna specialni funkce. Jakmile ma socket prirazeny port number (coz zajisti bind()), tak je port otevren a prijima pakety.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.