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 02:00 | Zajímavý článek

    Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě

    … více »
    Ladislav Hagara | Komentářů: 10
    včera 18:00 | Bezpečnostní upozornění

    Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.

    Ladislav Hagara | Komentářů: 1
    včera 14:33 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Nová verze

    Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | Nová verze

    Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Komunita

    Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.

    Ladislav Hagara | Komentářů: 9
    včera 04:22 | Komunita

    V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.

    Ladislav Hagara | Komentářů: 0
    10.9. 18:33 | Nová verze

    Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.

    Ladislav Hagara | Komentářů: 0
    10.9. 12:33 | Nová verze

    Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 0
    10.9. 11:11 | Pozvánky

    Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.

    Petr Krčmář | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2650 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: UDP Komunikacia

    14.11.2017 00:19 darren97 | skóre: 4
    UDP Komunikacia
    Přečteno: 826×
    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.