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 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
    dnes 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ářů: 3
    dnes 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
    včera 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
    včera 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ářů: 24
    včera 02:44 | IT novinky

    Microsoft Defender nově podporuje linuxové desktopy.

    Ladislav Hagara | Komentářů: 11
    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ářů: 5
    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ářů: 36
    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ářů: 6
    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%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2854 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    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: 682×
    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á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.