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í
×
    16.10. 15:55 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).

    Ladislav Hagara | Komentářů: 0
    16.10. 03:44 | IT novinky

    Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.

    Ladislav Hagara | Komentářů: 16
    16.10. 03:33 | Pozvánky

    O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.

    Ladislav Hagara | Komentářů: 0
    15.10. 20:33 | Nová verze

    Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.

    Ladislav Hagara | Komentářů: 1
    15.10. 16:44 | IT novinky

    České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.

    Ladislav Hagara | Komentářů: 30
    15.10. 02:44 | IT novinky

    Microsoft Defender nově podporuje linuxové desktopy.

    Ladislav Hagara | Komentářů: 17
    14.10. 21:00 | Komunita

    Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.

    Ladislav Hagara | Komentářů: 6
    14.10. 13:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).

    ʚĭɞ 🍉 | Komentářů: 38
    14.10. 10:55 | IT novinky

    Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.

    Ladislav Hagara | Komentářů: 7
    14.10. 03:55 | Komunita

    KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2864 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: TCP server na linuxu

    27.3.2013 15:36 Petr
    TCP server na linuxu
    Přečteno: 896×
    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ákno • Nahoru

    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.