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 04:22 | Nová verze

    Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 1
    dnes 00:33 | Nová verze

    Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).

    Ladislav Hagara | Komentářů: 1
    včera 22:11 | Bezpečnostní upozornění

    MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.

    vencour | Komentářů: 0
    včera 17:00 | Bezpečnostní upozornění

    Ve správci balíčků APT, používaném v Debianu a odvozených distribucích, byla nalezena a opravena kritická zranitelnost CVE-2026-109518. Vzdálený útočník může obejít ověření stažených balíčků pomocí přesměrování a dočasných chyb HTTP serveru.

    Ladislav Hagara | Komentářů: 1
    včera 13:11 | IT novinky

    Nejvyšší kontrolní úřad (NKÚ) vydal zprávu o finančním řízení prostředků EU v ČR (pdf). Dočíst se lze například, že přes 8 miliard korun na digitální vzdělávání nepřineslo naplnění žádného z prioritních cílů programu. Peněžní prostředky z fondů EU sice byly vynaloženy formálně v souladu s právními předpisy, avšak s minimálním nebo neprokazatelným dopadem na proklamované cíle ve vzdělávání. Na Metodickém portálu RVP.CZ bylo ke konci

    … více »
    Ladislav Hagara | Komentářů: 17
    včera 11:33 | Nová verze

    Emulátor terminálu kitty (Wikipedie, GitHub) byl vydán v nové verzi 0.50.

    Ladislav Hagara | Komentářů: 2
    včera 09:00 | Bezpečnostní upozornění

    Vývojáři C-Kermit oznámili několik dlouhodobě přítomných zranitelností. Patří mezi ně buffer overflow v Telnet/FTP klientovi a command injection v Kermit serveru. Dotčené verze: C-Kermit 11.0.514 a starší. Fix: 11.1.515 [oss-security].

    vencour | Komentářů: 0
    včera 02:44 | Nová verze

    Byla vydána nová verze 3.2.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    3.11. 16:55 | Nová verze

    Projekt openSUSE dnes, 3. listopadu 2026, oficiálně vydal openSUSE Leap 16.1, novou verzi své stabilní linuxové distribuce. Novinkou je také Immutable Mode, který nahrazuje dosavadní samostatnou distribuci openSUSE Leap Micro. Podrobnosti o novém vydání najdete v oficiálním oznámení nebo v českém překladu oznámení. Instalační obrazy jsou již dostupné na get.opensuse.org. Vydání společně oslavíme v pátek ve virtuálním baru a na … více »

    lkocman | Komentářů: 0
    3.11. 16:00 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 45. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora Cloud pro cloudové nasazení, Fedora CoreOS pro ty, kteří preferují neměnné systémy a Fedora IoT pro internet věcí. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2979 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: zavreny soket je porad aktivni

    20.9.2005 17:38 Frantisek Fencl
    zavreny soket je porad aktivni
    Přečteno: 444×
    Zdravim, mam nasledujici dotaz: delam program (v C), ktery komunikuje s webserverem na portu 1719. Hlavni cast zdrojaku:

    #define MAX 100
    #define EXIT_FAILURE 0
    #define EXIT_SUCCESS 1
    #define PORT 1719
    #define BACKLOG 10 //how many pending connections will stay in front
    #define BUFLEN 200 //how long (max) will be recieving message

    int recok, len, max, retval, mainSocket, clientSocket;
    struct sockaddr_in sockName, clientName;
    char message[BUFLEN], buffer[BUFLEN], end_seq[3] = "666";

    /* 1 - Creating a socket */
    if ((mainSocket = socket(PF_INET,SOCK_STREAM,0)) == -1) // vytvoreni soketu main - naslouchaci soket
    {
    printf("%s\n","Cannot create a communication socket");
    exit(EXIT_FAILURE);
    }

    /* Naming a socket */
    sockName.sin_family = AF_INET; // protokoly TCP/IP
    sockName.sin_port = htons(PORT); // preklad na sitovou adresu - univerzalni format
    sockName.sin_addr.s_addr = INADDR_ANY; // INADDR_ANY je IP adresa stroje
    memset(&(sockName.sin_zero),'\0',8); // vyplneni 8-mi zbylych bytu nulou
    retval = bind(mainSocket, (struct sockaddr *) &sockName, sizeof(sockName)); // pojmenovani soketu

    /* The Big Loop */
    while (1)
    {
    retval = listen(mainSocket,BACKLOG); // naslouchani na soketu
    retval = sizeof(clientName);
    clientSocket = accept(mainSocket, (struct sockaddr *) &clientName, &retval); //vytvoreni komunikacniho soketu
    if ((len = recv(clientSocket, buffer, BUFLEN - 1, 0)) > 0) //prijem zpravy ze soketu (cislo), len je delka zpravy v bajtech
     {
      buffer[len] = '\0';
      printf("%s %s\n","Recieved number:",buffer);
      strcpy(message,"Number was recieved successfully\0");
     }
    else
     {
      printf("%s\n","Nothing was send");
      strcpy(message,"Number was not recieved\0");
     }
    send(clientSocket,message,sizeof(message),0);
    printf("%s %s%s\n","Message\"",message,"\"was sent to Apache");
    close(clientSocket); //uzavreni soketu
    if ((strcmp(buffer, end_seq)) == 0)
     {
      close(mainSocket);
      exit(EXIT_FAILURE);
     }
    }

    Na opacne strane je PHP skript:

    $number = $_REQUEST["number"];
    $socket = FSockOpen("127.0.0.1",1719);
    $writeok = FPuts($socket,$number);
    $message = FGetS($socket,200);
    $close_sock = FClose($socket);

    Vsechno vypada v poradku, obe strany zaviraji po komunikaci soket. Kdyz ale vypisu sokety pomoci socklist, vzdycky tam najdu ten chteny naslouchaci soket ale taky soket co nechci:

    tcp 1719 36764 2001 11500 4 konfd
    tcp 1719 0 0 0 0

    Ten nechteny soket se vzdycky tak cca po 50 sekundach ztrati, ale problem je, kdyz posilam vic cisel za sebou, tak mi to potom vyhodi "Segmentation fault".
    Diky za pomoc

    Odpovědi

    Luboš Doležel (Doli) avatar 20.9.2005 17:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Stav toho socketu je TIME_WAIT ne? Pokud ano, tak je vše v pořádku.
    20.9.2005 18:02 Frantisek Fencl
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Tak nevim, po spusteni programu je vypise socklist pouze ten chteny soket (mainSocket), po prvnim prijeti cisla, kdy je vytvoren a zavren soket "clientSoket" se objevi dalsi soket v socklistu. Nevidim duvod proc by se tam mel objevit dalsi soket. Pokud se mylim, prosim o vysvetleni :)
    Luboš Doležel (Doli) avatar 20.9.2005 18:13 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Nevím, co je to socklist, ale co ukáže netstat?
    20.9.2005 18:31 Frantisek Fencl
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Aha, v netstatu se objevi taky o soket vic:

    Local Address Foreign Address State User Inode
    localhost:1719 localhost:2140 TIME_WAIT root 0

    Normalne je tam jenom:

    Local Address Foreign Address State User Inode
    *:1719 *:* LISTEN frankie 75147

    Jak se mam ale toho soketu zbavit?
    Josef Kufner avatar 20.9.2005 19:18 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    TIME_WAIT znamena, ze socket je už mrtvý a čeká se na nějaký timeout, aby to obě strany věděly jistě. Je to naprosto normální a není to chyba. Taky to nijak nepřekáží, pokud nejde o poslouchací socket serveru, poté co server chcípne a chce znovu poslouchat na tomtéž portu.
    Hello world ! Segmentation fault (core dumped)
    20.9.2005 19:31 Frantisek Fencl
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Ted jsem zjistil, ze mi probehnou v pohode tri spojeni a vzdycky pri ctvrtym to spadne - tak to jsem z toho fakt jelen :)
    20.9.2005 18:41 petr_p
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Hledejte volbu SO_REUSEADDR v socket(7).
    20.9.2005 19:21 Frantisek Fencl
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Nasel jsem:

    int yes = 1;
    setsockopt(mainSocket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)

    ale nic to nepomaha - chova se to porad stejne
    23.9.2005 11:29 petr_p
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Kotroluj navratovy hodnoty a ruzne chybove stavy.

    Napr. fce recv() muze vratit 0, coz znamena, ze druha strana zavrela spojeni, ale ty se stejne pokousis do nej neco poslat pomoci send() a pak fci strcmp() ctes z bufferu, ktery napr. nemusi obsahovat '\0', cimz uteces z alokovane pameti pro buffer[BUFLEN] a jadro ti posle SIGSEGV.

    Zkousel jsi to vubec debugovat? Skompiluj to s volbou -g, pak to pust pres nejaky debugger az to spadne, tak se podivej kde a jake jsou hodnoty prommenych.
    23.9.2005 16:34 Beda
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    stav toho soketu je v netstatu popsan jako finwait nebo finwait2, ne?

    to znamena, ze probiha rozpojovani cekani na paket s reset flagem a dokonce i po rozpojeni je soket jeste nejakou dobu podrzeny, aby ho nekdo nepouzil, protoze tcp pakety muzou prijit vice nez jednou.
    23.9.2005 16:37 Beda
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    asi sockName.sin_port zmenit tak, aby odchozi port byl any a cilovy port byl PORT?
    2.10.2005 17:00 Frantisek Fencl
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Diky vsem za pomoc, chyba byla jinde. Aspon jsem se naucil neco noveho
    2.10.2005 17:16 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Co kdybys napsal, kde?
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    23.5.2006 02:12 czfrankie | skóre: 8 | blog: frankie
    Rozbalit Rozbalit vše Re: zavreny soket je porad aktivni
    Chyba s tím vůbec nesouvisela, zapisoval jsem do soubou, který neexistoval :). Dvakrát to prošlo a potřetí už ne
    Tak zahraj, ať víme jakej seš

    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.