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:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 1
    dnes 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    dnes 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 2
    dnes 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

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

    Byla vydána nová verze 1.54.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Jan Václav.

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

    Knižní edice správce české národní domény přináší novou knihu zkušeného programátora Pavla Tišnovského s názvem Programovací jazyk Go. Publikace nabízí srozumitelný a prakticky zaměřený pohled na programování v tomto moderním jazyce. Nejedná se však o klasickou učebnici, ale spíše o průvodce pro vývojáře, kteří s Go začínají, nebo pro ty, kdo hledají odpovědi na konkrétní otázky či inspiraci k dalšímu objevování. Tištěná i digitální verze knihy je již nyní k dispozici u většiny knihkupců.

    Ladislav Hagara | Komentářů: 2
    včera 13:11 | IT novinky

    OpenAI zpřístupnila (en) nové nenáročné otevřené jazykové modely gpt-oss (gpt-oss-120b a gpt-oss-20b). Přístupné jsou pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 5
    včera 04:33 | Nová verze

    Byla vydána RC verze openSUSE Leap 16. S novým instalátorem Agama, Xfce nad Waylandem a SELinuxem.

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

    Google Chrome 139 byl prohlášen za stabilní. Nejnovější stabilní verze 139.0.7258.66 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 12 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře. S verzí 139 přestal být podporován Android 8.0 (Oreo) a Android 9.0 (Pie).

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (40%)
     (24%)
     (4%)
     (6%)
     (3%)
     (1%)
     (1%)
     (21%)
    Celkem 268 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: Komunikace Server/Client knihovna v C++

    1.12.2011 22:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Komunikace Server/Client knihovna v C++
    Přečteno: 703×
    Ahoj, potřebuji spíše obecnou inspiraci či tip, mám „nápad“ na aplikaci a již jsem si to i odzkoušel hloupějšími nástroji na to jak bych si to představoval (PHP, MySQL, Apache) a chtěl bych to v C++.
    Aplikace Server - Client a dotaz směřuje hlavně na serverovou část.
    Jednalo by se čistě centrální řízení, server vše říká co chce od clienta, kontroluje to co mu dal, odmítá se s ním bavit (překročení definovaných limitů, priorit, nesprávné chováni klienta apod.).
    Komunikaci sice iniciuje klient, ale server rozhodne, kdy a o čem se s ním bude bavit.
    Každá komunikace (jednotlivý přenos) je vzájemně podepsaná (i client ví, že se baví právě ze serverem a, že data jsou od něj - 2× klíče/priv. a pub./ )
    Komunikace může být velmi aktivní (spousta malých objemů s velkým množstvím kroků tam a zpět), ale také se budou přenášet velká data, ale client nebo server bude zodpovědný za dělení a postupné odesílání po definovaných blocích (řádově 1MiB až desítky MiB) a server rozhodne kolik takových „částí“ přijme za časovou jednotku.
    No a nechci řešit tu vlastní komunikace, v zásadě mi vyhovuje webserver (i když ta serializace dat ze serveru ke klientu je naprd), protože to obvykle projde všude a můžu to pustit zabezpečeně zadarmo (https) a taky, protože tam bude i web aplikace jako „monitoring“ a může být někdy výkonnostně náročnější, než se obvykle očekává od web aplikace, takže mít kritické věci (nebo celé) v C++ by nebylo od věci.
    Napadlo mě nechat si myšlenku web serveru a použít například něco jako WT a použít vestavěný, ale nemám s tím žádnou zkušenost.
    Ale taky tam bude spousta zbytečné režie při čilé komunikaci, lepší by bylo udržovat komunikaci aktivní, ale nevím co použít „něco“ abych toho musel řešit co nejméně. Mělo by to být klasika, číhám (server) když někdo chce komunikovat „otevřu mu cestu“ a spustím pro něj instanci (multi-threading). A ať to zařídí i serializaci a přenos dat, pošlu strukturu/dostanu strukturu (že se to postará o i(e)ndiány je samozřejmost). Musí to být GPL (nebo kompatibilní), musí to být limitovatelné na počet spojení a mělo by to (číhač) ty spojení mít pod dohledem a moci s nimi komunikovat. Bezva by bylo kdyby to už rovnou i komunikaci šifrovalo a podepisoval (ale není to podmínkou).
    Nějaká knihovna a zkušenosti s ní, nebo „¿kudy?“ - dík.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    Řešení dotazu:


    Odpovědi

    1.12.2011 22:57 NN
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Nechcete vyuzit standartni socketove API?

    http://www.root.cz/serialy/sokety-a-cc/

    NN
    1.12.2011 23:27 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    No popravdě, ne. Je to samozřejmě možnost, ale chtěl bych se raději soustředit na to ostatní. Ona ta přenášena data jsou v zásadě velmi jednoduchá, když jsem to testoval, tak jsem si vystačil jen se třemi typy struktur (a dokážu si představit rozšíření na 6).
    Takže bych raději něco jako:
    Vytvořit instanci „něčeho“ Server, zdědit nějaký „interface“ k těm strukturám a zdědit nějaký „interface“ nějakého „instance_thread“ doplnit metodu „run“, něco tom zaregistrovat a hotovo. (Pak samozřejmě další krok, nějaká komunikace s jednotlivými „instance_thread“, třeba nějaký Monitor přiřazený Server.)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 09:52 chsajarsa | skóre: 16 | blog: V_hlouby_destneho_pralesa | Lovosice(Praha)
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Co treba xmlrpc-c? Nasazeni je opravdu velice trivialni a velice dobre funguje.
    ~ QED ~
    2.12.2011 12:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Díky to by mohla být, jak doufám, že přibude nějaký další tip, jedna z možností.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 13:23 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Možná hledáš něco jako MsgPack/Avro/Thrift/Protobuf? (Protocol Buffers tedy nemají vlastní RPC, ostatní myslím ano.)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    2.12.2011 15:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Ohó, díky, zběžně jsem to prošel a otázka, proč jsi dal MsgPack jako první?
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 15:20 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Protože mi je nejsympatičtější :-) Nepracoval jsem ani s jedním, ale Protocol Buffers nemá vlastní RPC (i když existují nezávislé implementace) a Avro je na tom, pokud vím, ne úplně dobře s dokumentací.

    Určitě existují i další binární serializační formáty s vlastním RPC, od chvíle, co se objevily Protocol Buffers od Googlu a pak Thrift od Facebooku, tak se vyrojily jak houby po dešti.

    Případně by tě možná ještě mohlo zajímat ZeroMQ, ale to už je o trochu něčem jiném.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    2.12.2011 15:47 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Taky mi 'MsgPack' tak na první pohled přišel.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 14:44 foldy
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Jo webtoolkit je super, vřele doporučuju. Mají jak vlastní webtoolkit server tak stačí i fastcgi do apache. Musíš trocha vědět jak to rozchodit a je s tím dost práce ale jinak super.
    2.12.2011 15:44 Sten
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    C++? Boost.ASIO. Umí to i šifrování.
    2.12.2011 16:35 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Vždycky jsme se vyhýbal tomu co začínalo boost, ale třeba je čas to změnit, šifrování (bez práce) je velmi lákavé (a toto se mi i v příkladech líbilo).
    Ukázkové kódu se mi tedy moc nelíbí, ale v tomto případě budu muset na to více juknout, třeba se to jen díky širokosti záběru tak tváří a bude to možné snadno hezky něčím jednoduchým obalit na potřebnou funkcionalitu.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 17:42 Sten
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Ukázkové kódy vypadají tak, jak vypadají, protože Boost se snaží být stejně pružný jako STL (a možná proto se mu spousta lidí zbytečně vyhýbá). Vy to zřejmě stejně zabalíte do nějakých objektů, které si jenom poskládají to, co potřebují.
    2.12.2011 21:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    S tím asi nedá nic než souhlasit, zkusím se s tím popasovat a pravděpodobně zvolím tuto cestu. Dík.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.12.2011 16:13 __dark__
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Ještě se mrkni na Node.JS, pokud se nebojíš javascriptu (a pokud jsem pochopil co chceš dělat). Node lze celkem pěkně kombinovat s C++, takže rychlostně by to mohlo být v pohodě.
    2.12.2011 16:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Javascriptu se nebojím, ale je mi odporný. S Node.JS jsem se již setkal, nemyslím, že je to dobrý kandidát. Ale stejně díky.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Saljack avatar 3.12.2011 11:33 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Ja ted pisu aplikaci, kterou bude moc obsluhovat pres jeji REST rozhrani. A jelikoz je to desktopova aplikace, tak i serverovou cast pisu v Qt. Navic Qt ma jiz SSL sockety, kterym staci strcit certifikat a privatni klic a ostatni ten socket provede sam.
    Sex, Drugs & Rock´n Roll.
    3.12.2011 14:14 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Komunikace Server/Client knihovna v C++
    Díky Ti, Qt nechci.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    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.