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 03:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.12 oznámil Linus Torvalds vydání Linuxu 6.13. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Odstraněn byl souborový systém ReiserFS.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    19. ledna 2038 přeteče hodnota time_t na 32bitových systémech, na vyřešení problému roku 2038 (Y2K38) tedy zbývá 13 let. Např. Debian v uplynulém roce přešel na 64bitový čas. Bernhard Wiedemann z openSUSE sdílí chyby v sestavení rozšířeného softwaru.

    Fluttershy, yay! | Komentářů: 0
    včera 15:44 | Nová verze

    Byla vydána druhá opravná verze 21.2 v dubnu loňského roku vydané verze 21 multimediálního centra Kodi (dříve XBMC, Wikipedie) s kódovým označením Omega.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    TikTok ve Spojených státech v sobotu večer místního času přerušil činnost. Uživatelé čínskou firmou vlastněné sociální sítě dostali zprávu, že aplikaci kvůli zákazu nelze používat. TikTok je momentálně nedostupný v obchodech s aplikacemi Google Play a App Store. Podle zákona přijatého loni a potvrzeného v pátek soudem měla platforma do dneška přerušit spojení se svou mateřskou společností ByteDance, která sídlí v Číně, nebo činnost v

    … více »
    Ladislav Hagara | Komentářů: 2
    18.1. 23:00 | Nová verze

    Wings 3D, tj. open source 3D modelovací program naprogramovaný v programovacím jazyce Erlang zaměřený na modelování pomocí subdivision a inspirovaný programy Nendo a Mirai od Izware, byl vydán v nové opravné verzi 2.4.1. Ke stažení již také ve formátu Flatpak z Flathubu.

    Ladislav Hagara | Komentářů: 0
    18.1. 22:22 | Nová verze

    Webový prohlížeč Dillo byl vydán ve verzi 3.2.0. Přidává podporu vzorců v SVG, obrázků ve WebP, změny velikosti stránky či možností posouvání. Nedávno oslavil 25. výročí vzniku.

    Fluttershy, yay! | Komentářů: 0
    18.1. 01:33 | Zajímavý software

    Hra Mini Thief je na Steamu zdarma napořád, když aktivaci provedete do 24. ledna do 19.00 [ProtonDB].

    Ladislav Hagara | Komentářů: 0
    16.1. 22:00 | IT novinky

    Certifikační autorita Let's Encrypt oznámila, že bude volitelně nabízet krátkodobé certifikáty s šestidenní platností a navíc s možností vystavit je na IP adresu. Zvolit typ certifikátu bude možné v certifikačním profilu ACME.

    Ladislav Hagara | Komentářů: 9
    16.1. 21:22 | IT novinky

    Herní konzole Nintendo Switch 2 byla oficiálně potvrzena. Vyjde letos. Trailer na YouTube. Více ve středu 2. dubna na Nintendo Direct.

    Ladislav Hagara | Komentářů: 4
    16.1. 17:33 | Nová verze

    Byl vydán Linux Mint 22.1 s kódovým jménem Xia. Podrobnosti v přehledu novinek a poznámkách k vydání. Linux Mint 22.1 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: socket v pythonu

    8.11.2007 10:20 kafcha | skóre: 1 | east
    socket v pythonu
    Přečteno: 456×
    zdravim, mam takovy problem ;] na zber dat pouzivame wifi terminaly, ke kterym jsem napsal maly 'server' v pythonu:
    HOST = ''
    PORT = 6001
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((HOST, PORT))
    s.listen()
    print 'server ceka na pripojeni'
    while 1:
            conn, addr = s.accept()
            print pripojen klient:', addr
            while 1:
                    data = conn.recv(1024) *prijmu data
                    nejaka omacka co zpracuje dosla data
                    conn.send(pomsend) *poslu data
    
    a problem je nasledujici, pokud clovek s terminalem odejde mimo dosah signalu, tak se nekdy stane ze server zustane viset (asi na recv()) a jedina moznost je ten programek sestrelit, pockat az upadne spojeni co je ve stavu fin_wait a pak ho pustit znovu. Je nejaka moznost jak se tohoto chovani zbavit? + jak poznam kdy se client(wifi terminal) odpojil korektne?

    Odpovědi

    8.11.2007 10:48 psonek | skóre: 20 | blog: psonek
    Rozbalit Rozbalit vše Re: socket v pythonu
    Socketu muzes pres set socket option nastavit recv timeout. Myslim, ze v pripade tech terminalu bude stacit 1s. Nevim presne jak to je v pythonu, ale obecne po 1s vylitne vyjimka nebo recv vrati 0 bytu. Pak muzes klientsky socket zavrit.

    Co se tyce korektniho odpojeni, tak ja bych dodelal do te omacky nejakej prikaz, kterym klient pozada o ukonceni spojeni. Server po obdrzeni toho prikazu zavre socket a to samo udela klient.
    8.11.2007 11:03 kafcha | skóre: 1 | east
    Rozbalit Rozbalit vše Re: socket v pythonu
    jdu vyzkouset ten timeout co se tyce toho korektniho odpojeni tak takhle to bohuzel nejde, jelikoz s klientem nic delat nemuzu ;[ spis me jde o to ze kdyz je ten terminal pripojenej, tak kdyz si dam vypsat spojeni v netstatu, tak ho tam vidim a pokud terminal vypnu, tak z vypisu netstatu zmizi, coz beru jako korektni ukonceni a jde mi o to, jestli tohle muzu nak poznat (naka vlastnost toho poslouchajiciho socketu? treba pocet pripojenych klientu ci neco takoveho)
    8.11.2007 11:42 kafcha | skóre: 1 | east
    Rozbalit Rozbalit vše Re: socket v pythonu
    tak s tim nastaveni recv timeoutu bych potreboval pomoc, protoze netusim kde ci jak to nastavit. Kdyz pouziju settimeout(n) tak to je asi timeout u accept a to nepotrebuju
    8.11.2007 13:15 psonek | skóre: 20 | blog: psonek
    Rozbalit Rozbalit vše Re: socket v pythonu
    Ja jsem bohuzel v pythonu nikdy neprogramoval. V C bys zavolal:
        struct timeval timeout;
    
        /* set receive timeout to 1s */
        timeout.tv_sec = 1;
        timeout.tv_usec = 0;
    
        setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)
    
    V pythonu budes muset pouzit

    setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, timeout)

    Ten posledni parametr timeout bude string reprezentujici Cckovsky struct timeval. Viz. http://docs.python.org/lib/socket-objects.html

    Bohuzel nemam moznost to vyzkouset.
    8.11.2007 17:16 kafcha | skóre: 1 | east
    Rozbalit Rozbalit vše Re: socket v pythonu
    tak se mi to nakonec podarilo udelat takhle tv = struct.pack('ii', int(timeout), int((timeout-int(timeout))*1e6)) setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, tv)

    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.