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 21:44 | IT novinky

    Apple představil iPhone 17e a iPad Air s čipem M4.

    Ladislav Hagara | Komentářů: 0
    dnes 21:11 | Zajímavý software

    Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.

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

    Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | Komunita

    Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.

    lkocman | Komentářů: 1
    včera 19:22 | IT novinky

    Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.

    Ladislav Hagara | Komentářů: 7
    včera 13:33 | IT novinky

    Technologická společnost Anthropic v noci na dnešek oznámila, že se obrátí na soud kvůli rozhodnutí ministerstva obrany označit ji za bezpečnostní riziko dodavatelského řetězce poté, co nevyhověla jeho požadavkům týkajícím se používání umělé inteligence (AI). Prezident Donald Trump krátce před tím uvedl, že nařídil federálním úřadům postupně ukončit využívání jejích AI technologií. Spor mezi firmou vyvíjející chatbot Claude a

    … více »
    Ladislav Hagara | Komentářů: 11
    28.2. 15:44 | Upozornění

    Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.

    Ladislav Hagara | Komentářů: 8
    27.2. 17:33 | IT novinky

    Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.

    Ladislav Hagara | Komentářů: 20
    27.2. 13:00 | IT novinky

    Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).

    Ladislav Hagara | Komentářů: 20
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (13%)
     (26%)
    Celkem 990 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Linux/Win32 API: SO_LINGER - okamžité uzavření soketu

    Fuky avatar 30.10.2008 22:55 Fuky | skóre: 52 | blog: 4u
    Linux/Win32 API: SO_LINGER - okamžité uzavření soketu
    Přečteno: 426×
    Multiplatformní aplikace napsaná v C se připojí k protistraně a začne jí posílat data. Protistraně se zaplní buffer, takže přestane přijímat pakety. Začnou se tedy objevovat retransmission pakety. Uzavřu tedy spojení s protistranou, abych jí dal čas na vyprázdnění bufferu. V Linuxu se mi spojení díky nastavení SO_LINGER okamžitě uzavře. Ovšem ve Windows spojení zůstane viset dál, i když použiju stejné nastavení SO_LINGER, protože se čeká na doručení paketu. Jak zajistit i ve Windows okamžité uzavření soketu, i když jsou ve frontě stále nějaké nedoručené pakety? Děkuji za nakopnutí správným směrem.

    Řešení dotazu:


    Odpovědi

    Pavel Stárek avatar 31.10.2008 12:16 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Linux/Win32 API: SO_LINGER - okamžité uzavření soketu
    Citace z dokumentace na webu MSDN:

    To disable a socket from remaining open, an application only needs to set the l_onoff member of the linger structure to zero.

    A pro jistotu bych ještě nastavil ten l_linger timeout v té struktuře na nulu.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    Fuky avatar 2.11.2008 12:00 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Linux/Win32 API: SO_LINGER - okamžité uzavření soketu
    Děkuji za radu, i toto nastavení jsem zkoušel a výsledek je stále stejný. Jakmile začnou chodit retransmission pakety, tak mi vrátí fce select() na zapisovacím deskriptoru WSAEWOULDBLOCK - Error 10035, já tedy uzavřu soket, ale Windows nechá spojení otevřené a čeká až bude moci doručit neodeslaný paket.
    Fuky avatar 2.11.2008 22:33 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Linux/Win32 API: SO_LINGER - okamžité uzavření soketu

    Správně je set_linger.l_onoff = 1; set_linger.l_linger = 0;, tj. zahodí neodeslaná data a okamžitě odešlě protistraně RESET. Pokud je l_onoff == 0 pošle FIN, ale pouze pokud jsou všechna data doručena protistraně (implicitní chování). Pokud je l_onoff == 1 && l_linger != 0, tak v případě, že jsou všechna data doručena pošle FIN, jinak po vypršení timeoutu pošlě RESET.

    Pokud program spustím pod Wine, funguje dle očekávání bez problémů. Ovšem na Windows ne...

    Stejný dotaz jsem ještě položil na Okamžité uzavření soketu ve Windows (builder.cz), ovšem zatím bez řešení.

    Řešení 1× (Fuky (tazatel))
    Fuky avatar 3.11.2008 22:52 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Linux/Win32 API: SO_LINGER - okamžité uzavření soketu
    Takže problém je vyřešen. Chyba bude nakonec na straně FW protistrany v nižší síťové vrstvě, na funkci v Linuxu to nemělo vliv, ale ve Windows nefungovalo okamžité uzavření soketu. Další problém byl v tom, že před closesocket() se nesmí volat shutdown() jinak se soket také okamžitě neuzavře.

    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.