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

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    včera 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 8
    včera 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 1
    včera 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    včera 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    6.5. 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.5. 17:11 | IT novinky

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (64%)
     (7%)
     (13%)
     (16%)
    Celkem 138 hlasů
     Komentářů: 9, poslední včera 22:07
    Rozcestník

    Dotaz: UDP Komunikacia

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