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 17:55 | Nová verze

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

    Ladislav Hagara | Komentářů: 0
    dnes 14:33 | IT novinky

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 4
    dnes 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    dnes 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Komunita

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 1
    včera 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 44
    včera 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    včera 12:44 | Nová verze

    Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:00 | Zajímavý software

    Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.

    Ladislav Hagara | Komentářů: 1
    25.11. 17:00 | IT novinky

    Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.

    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (18%)
    Celkem 410 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: UDP Komunikacia

    14.11.2017 00:19 darren97 | skóre: 4
    UDP Komunikacia
    Přečteno: 785×
    Příloha:
    Ahojte, riesim UDP komunikator. Nejaky uvodny kod mam z netu, ale s tym, ze je typu: poslem nieco z klienta a server odpovie to iste. Teraz by som to rad prerobil tak, ze pokojne jedna alebo druha strana moze poslat spravu (nie naraz, nemusi to byt v rovnakom case obojsmerne) a druha strana to zobrazi a nasledne zase moze poslat ktorakolvek strana spravu a druha ju zobrazi atd. Problem mam s funkciou: recvfrom ...zastavi mi program na tom mieste. Chcem mat proste iba nejaku kontrolu: ak mi nieco pride, tak zobraz. Kod je v prilohe, su tam niektore veci zapoznamkovane. - ak zadam text tak ho posli - ak nieco pride tak zobraz a nasledne daj ponuku opat pre posielanie

    Vopred vdaka za spatnu vazbu.


    Řešení dotazu:


    Odpovědi

    Řešení 1× (darren97 (tazatel))
    Jendа avatar 14.11.2017 05:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: UDP Komunikacia
    Jestli to dobře chápu, potřebuješ čekat na soketu a na stdin současně? Vyber si: poll nebo to rovnou napiš vícevláknově.
    14.11.2017 08:39 R
    Rozbalit Rozbalit vše Re: UDP Komunikacia
    V sietovych programoch sa casto pouziva select().
    16.11.2017 12:28 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: UDP Komunikacia

    Používá se hlavně poll(), protože select() je takový slabý odvar, který na některých systémech nakonec stejně volá poll().

    16.11.2017 13:12 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: UDP Komunikacia

    Já to ještě trochu zobecním: Co když chce čekat na socketu i na stdin, ale zároveň ještě asynchronně něco (dalšího) dělat? I to se dá (v jednovláknovém programu) zařídit. Řešení může být například:

    1. Zaregistrovat signal handler (man sigaction) pro SIGIO (SIGPOLL), který napřed zkontroluje neblokujícím poll() (timeout 0), který file descriptor a typ operace to bude, a pak přečte příslušnou zprávu, což bude neblokující (a dá se to pojistit také pomocí F_SETFL O_NONBLOCK (man fcntl)).
    2. Nastavit na socketu F_SETOWN na svůj vlastní proces (getpid()), aby pak dostával asynchronně signály o změnách na socketu (man socket, man fcntl).

    Samozřejmě tady nezmiňuju corner cases, které se musí rozumně ošetřit. Například když zápis do neblokujícího deskriptoru najednou vrátí EWOULDBLOCK.

    16.11.2017 13:23 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: UDP Komunikacia
    Pár detailů je v mém komentáři níže. Ale jak se tak dívám na ten zdroják, musím upozornit na jednu věc: Něco ke tam od základu špatně. Je to toriž omezené na IPv4 z roku 1975, takže například tady u mě na síti to prostě nefunguje. Jestli to má být omezené na jeden protokol, je lepší zvolit ten z roku 1995 (IPv6), nikoliv ten z roku 1975.

    Správným řešením je getaddrinfo(). To je funkce, která správně vyhodnotí IP adresy všech možných typů i doménová jména a dodá pak všechny potřebné konstanty pro vytvoření toho socketu. Takže pak uživatel nikdy nemusí mít v kódu něco jako AF_INET6, což může přestat fungovat, až se bude používat AF_INET54, ale vezme zkrátka konstanty ze struktur vrácených z getaddrinfo(). Navíc getaddrinfo() správně vyhodnotí konektivitu, takže se nestane, aby například na IPv6-only stroji nabízelo IPv4 adresy, i když zadaná doména nějaké má.

    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.