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 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 1
    dnes 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

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

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

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

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

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

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 882 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 686×
    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.