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í
×
    včera 15:55 | Komunita

    O víkendu (15:00 až 23:00) probíha EmacsConf 2025, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy budou k dispozici přímo z programu.

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

    Provozovatel internetové encyklopedie Wikipedia jedná s velkými technologickými firmami o uzavření dohod podobných té, kterou má s Googlem. Snaží se tak zpeněžit rostoucí závislost firem zabývajících se umělou inteligencí (AI) na svém obsahu. Firmy využívají volně dostupná data z Wikipedie k trénování jazykových modelů, což zvyšuje náklady, které musí nezisková organizace provozující Wikipedii sama nést. Automatické programy

    … více »
    Ladislav Hagara | Komentářů: 11
    včera 15:22 | IT novinky

    Evropská komise obvinila síť 𝕏 z porušení unijních pravidel, konkrétně nařízení Evropské unie o digitálních službách (DSA). Vyměřila jí za to pokutu 120 milionů eur (2,9 miliardy Kč). Pokuta je podle názoru amerického ministra zahraničí útokem zahraničních vlád na americký lid. K pokutě se vyjádřil i americký viceprezident: „EU by měla podporovat svobodu projevu, a ne útočit na americké společnosti kvůli nesmyslům“.

    Ladislav Hagara | Komentářů: 9
    5.12. 17:11 | IT novinky

    Společnost Jolla spustila kampaň na podporu svého nového telefonu Jolla Phone se Sailfish OS. Dodání je plánováno na první polovinu příštího roku. Pokud bude alespoň 2 000 zájemců. Záloha na telefon je 99 €. Cena telefonu v rámci kampaně je 499 €.

    Ladislav Hagara | Komentářů: 24
    5.12. 15:11 | IT novinky

    Netflix kupuje Warner Bros. včetně jejích filmových a televizních studií HBO Max a HBO. Za 72 miliard dolarů (asi 1,5 bilionu korun).

    Ladislav Hagara | Komentářů: 2
    5.12. 14:11 | IT novinky

    V Las Vegas dnes končí pětidenní konference AWS re:Invent 2025. Společnost Amazon Web Services (AWS) na ní představila celou řadu novinek. Vypíchnout lze 192jádrový CPU Graviton5 nebo AI chip Trainium3.

    Ladislav Hagara | Komentářů: 0
    5.12. 00:33 | Nová verze

    Firma Proxmox vydala novou serverovou distribuci Datacenter Manager ve verzi 1.0 (poznámky k vydání). Podobně jako Virtual Environment, Mail Gateway či Backup Server je založená na Debianu, k němuž přidává integraci ZFS, webové administrační rozhraní a další. Datacenter Manager je určený ke správě instalací právě ostatních distribucí Proxmox.

    |🇵🇸 | Komentářů: 10
    4.12. 23:44 | Nová verze

    Byla vydána nová verze 2.4.66 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 5 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    4.12. 14:00 | IT novinky

    Programovací jazyk JavaScript (Wikipedie) dnes slaví 30 let od svého oficiálního představení 4. prosince 1995.

    Ladislav Hagara | Komentářů: 0
    4.12. 04:22 | Bezpečnostní upozornění

    Byly zveřejněny informace o kritické zranitelnosti CVE-2025-55182 s CVSS 10.0 v React Server Components. Zranitelnost je opravena v Reactu 19.0.1, 19.1.2 a 19.2.1.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 435 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: TCP server na linuxu

    27.3.2013 15:36 Petr
    TCP server na linuxu
    Přečteno: 586×
    Dobrý den, v C++ jsem si napsal jednoduchý server (na linuxu). Vycházel jsem z informací popsaných zde:
      http://www.builder.cz/rubriky/c/c--/tcp-server-v-l inuxu-156219cz
    Hlavně z toho příkladu.

    Přenos dat mezi serverem a klientem (taky napsaný v c++) funguje bez problémů. Ale při testování jsem narazil na zajímavou chybu. Zapnu server a připojím se na něj pomocí klienta, klient pošle data, server je zpracuje a pošle odpověď. Potom server ukončím a když se ho pokusím znovu rychle zapnou, vypíše mi chybu při pojmenování socketu, tedy funkce bind. Stačí počkat pár vteřin a další pokus zapnutí serveru se již podaří.

    Je to normální chování, nebo by měl server naskočit hned?

    Řešení dotazu:


    Odpovědi

    27.3.2013 15:45 chrono
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Pravdepodobne záleží na tom, akým spôsobom sa ten server ukončí (a teda, či pri ukončovaní pozatvára spojenia...).
    27.3.2013 15:49 Petr
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Kontroloval jsem a zavírání otevřeného socketu (close(socket)) by mělo být v pořádku.
    27.3.2013 15:54 Petr
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Jak správně by se měl vůbec server ukončit?

    Já jenom pozavírám otevřené sockety pomocí close(nazev_socketu) a ukončím program. Nezapomínám na něco?
    Michy avatar 27.3.2013 16:04 Michy | skóre: 11 | Praha
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Před voláním bind je třeba soketu nastavit příznak SO_REUSEADDR. Tedy něco takového:
    static const int flag = true;
    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));
    
    Více viz man 7 socket
    27.3.2013 17:14 Petr
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Děkuju, pomohl to. Mohl bych poprosit o stručné vysvětlení, co funkce setsockopt přesně provedla. A proč to bez ní šel server spustit znovu až po několika vteřinách? Děkuji.
    27.3.2013 17:41 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Zkuste se podívat programem netstat na tabulku spojení. Obvykle tam i po ukončení spojení ještě spojení zůstane se stavem "TIME_WAIT" nějakou dobu, než timer vyprší. Očekával bych, že existence buď přímo těchto ještě zcela nesmazaných spojení nebo jiného podobného timeru klasifikuje soket jako obsazený i nějakou dobu po ukončení programu. Funkce setsockopt nastavuje volby soketu a konkrétně nastaví jeho reentrantnost.
    Řešení 1× (little.owl)
    27.3.2013 21:18 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Kdybyste chtěl poměrně rozvláčné vysvětlení, tak dobře poslouží TIME_WAIT and its design implications for protocols and scalable client server systems. (To podstatné začíná větou „There are two reasons for the TIME_WAIT state.“, praktický význam pak odstavcem „The second reason for the TIME_WAIT state is to implement TCP's full-duplex connection termination reliably.“)
    28.3.2013 20:11 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    Díky za hezký odkaz.
    little.owl avatar 11.4.2013 00:13 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: TCP server na linuxu
    +1
    A former Red Hat freeloader.

    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.