Výsledky 1 až 19 z 19

Téma: C++: threading v konzolove aplikaci

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Standardní C++: threading v konzolove aplikaci

    Zdravim,
    delal jste nekdo threading v c++ v konzol. aplikaci?
    Delam chat pres sockety a je zde potreba threadovat.
    Nedelal jste nekdo uz takovy program nebo nevite jak na to?
    Diky M.
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  2. #2

    Standardní

    Na rootu byl nedavno pekny serial o takovychhle vecech - moc podrobne jsem ho necet ale myslim ze to tam bude probrane docela do hloubky.

    Jedna se predevsim o glibc pthreads (asi nejpouzivanejsi v soucasnosti). Pripadne muzes pouzivat threadovani v glib (www.gtk.org).
    In a world without fences and walls, who needs Gates and Windows? | Nesnáším wide monitory.
    Workstation: Xeon E3-1275v5 :: Silentmaxx TwinBlock fanless :: Fujitsu D3417-B :: 32 GB ECC DDR4 :: Radeon Pro WX 2100 fanless :: Dell UP2715K :: Gentoo
    Server: Xeon E3-1245v6 :: Supermicro X11SSH-F :: 32 GB ECC DDR4 :: Aquantia 5GBase-T :: 36 TB storage :: Gentoo Hardened

  3. #3

    Standardní

    mno delam to pod Win XP s MS Visual studio 6
    Tam to je stejne?
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  4. #4
    Senior Member Avatar uživatele jaluvkap
    Založen
    23.10.2002
    Bydliště
    Koprivnice
    Věk
    42
    Příspěvky
    851
    Vliv
    289

    Standardní

    Citace Původně odeslal mudboy
    mno delam to pod Win XP s MS Visual studio 6
    Tam to je stejne?
    MSDN->CreateProcess, CreateThread apod.
    HOME 1 : WINDOWS 7 - ASUS P5Q-E - E2160@default - 4GB A-Data DDR2 800EE - Noctua NH-U12P - MSI HD5870 1GB@default - WD5000AAKS - WD 3200AAKS - WD 10EADS - WD 15EADS - Samsung 2.5" 320GB USB - Samsung 183L - HP LP2465 - Delta 700W from HP - 2xNF-P12 - Chieftec WH-02B-B-OP
    HOME 2 : Windows XP - Asus K8V-XE - A64 3000+@250*10/1.42V - Corsair Value 1024MB 2.5/3/3/6 333MHz - Samsung SP1614N - Toshiba M1712 - Diamondtron AOC 7A+ - Modecom Feel-V

  5. #5

    Standardní

    Citace Původně odeslal mudboy
    mno delam to pod Win XP s MS Visual studio 6
    Tam to je stejne?
    Hm to nevim, pod windowsama neprogramuju. Zalezi jakou potrebujes portabilitu. Glib je tusim taky multiplatformni (POSIX unixy a Windows).
    In a world without fences and walls, who needs Gates and Windows? | Nesnáším wide monitory.
    Workstation: Xeon E3-1275v5 :: Silentmaxx TwinBlock fanless :: Fujitsu D3417-B :: 32 GB ECC DDR4 :: Radeon Pro WX 2100 fanless :: Dell UP2715K :: Gentoo
    Server: Xeon E3-1245v6 :: Supermicro X11SSH-F :: 32 GB ECC DDR4 :: Aquantia 5GBase-T :: 36 TB storage :: Gentoo Hardened

  6. #6

    Standardní

    diky za odpovedi,
    thread mi uz jede dobre,
    ale jeste mam problem se socketama.
    Delam program na chatovani.
    takze potrebuji odeslat data a zaroven cekat, jestli neco server neposila.
    Nevite, jak to udelat?
    Diky
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  7. #7

    Standardní

    vsechno uz mam vyreseno krome jednoho:
    jde v C++ nacist buffer klavesnice?
    Potrebuji zjistit, zda neni stisknute tlacitko, aniz by se program zastavoval (t.j. instrukce neni halt, jen projede a kdyztak neco vrati).
    Kdysi jsem to delal v ASM zavolanim preruseni.
    Diky
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  8. #8
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Snad by měl fungovat GetAsyncKeyState....
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  9. #9

    Standardní

    funguje to i v konzolove aplikaci?
    To jsem zapomnel napsat
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  10. #10
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Mělo by...
    a nebo zkus něco jako toto...

    Kód:
    if (kbhit()) {
      key = getch();
      if (key == '1') ....
    fce kbhit() by měla být v conio.h..[/code]
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  11. #11

    Standardní

    Citace Původně odeslal Anduril
    Mělo by...
    a nebo zkus něco jako toto...

    Kód:
    if (kbhit()) {
      key = getch();
      if (key == '1') ....
    fce kbhit() by měla být v conio.h..[/code]
    Tak tohle mi bohuzel nejede,
    prelozi se to, ale v programu to nic nedela
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  12. #12
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Takže tvůj kompilátor nepodporuje conio...
    Tak zkus toto...zkopírováno ze souboru wincompat.h
    Tohle mi funguje...gcc (MingW)

    Kód:
    #if !defined(WINCOMPAT_INCLUDED) && !defined(PLATFORM_WINDOWS) && !defined(WIN32) && !defined(WINDOWS) && !defined(__WIN32__)
    #define WINCOMPAT_INCLUDED
    
    /**
     * 
     * Author: Magnus Naeslund (mag@fbab.net, mag@bahnhof.se)
     * (c) 2000 Magnus Naeslund, all rights reserved
     * 
     */
    
    #include <sys/time.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <termios.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #ifndef TRUE
      #define TRUE 1
    #endif
    #ifndef FALSE
      #define FALSE 0
    #endif
    
    #define _kbhit kbhit
    #define stricmp strcasecmp
    #define strnicmp strncasecmp
    
    #define Sleep&#40;x&#41; usleep&#40;&#40;x&#41;*1000&#41;
    
    static int            inited=0;
    static struct termios ori;
    
    static void tcatexit&#40;&#41;&#123;
       tcsetattr&#40;0,0,&ori&#41;;
    &#125;
    
    static void init_terminal&#40;&#41;&#123;
       struct termios t;
       tcgetattr&#40;0,&t&#41;;
       tcgetattr&#40;0,&ori&#41;;
       t.c_lflag &= ~&#40;ICANON&#41;;
       tcsetattr&#40;0,0,&t&#41;;
       atexit&#40;tcatexit&#41;;
    &#125;
    
    static inline int kbhit&#40;&#41;&#123;
      fd_set rfds;
      struct timeval tv;
    
       if &#40;!inited&#41;&#123;
    	  inited=1;
    	  init_terminal&#40;&#41;;
       &#125;
       
       FD_ZERO&#40;&rfds&#41;;
       FD_SET&#40;0, &rfds&#41;;
       tv.tv_sec = 0;
       tv.tv_usec = 10*1000;
       return select&#40;1, &rfds, NULL, NULL, &tv&#41;>0;
    &#125;
    
    static inline int getch&#40;&#41;&#123;
       fd_set rfds;
       
       if &#40;!inited&#41;&#123;
    	  inited=1;
    	  init_terminal&#40;&#41;;
       &#125;
       
       FD_ZERO&#40;&rfds&#41;;
       FD_SET&#40;0, &rfds&#41;;
       if &#40;select&#40;1, &rfds, NULL, NULL, NULL&#41;>0&#41;
    	 return getchar&#40;&#41;;
       else&#123;
    	  printf&#40;"wincompat.h&#58; select&#40;&#41; on fd 0 failed\n"&#41;;
    	  return 0xDeadBeef;
       &#125;	 
    &#125;
    
    #endif
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  13. #13

    Standardní

    chjo,
    to mi zase vraci
    LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  14. #14
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Citace Původně odeslal mudboy
    chjo,
    to mi zase vraci
    LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Tak to už máš problém v nastavení svého kompilátoru/linkeru...shlédni MSDN, určitě najdeš řešení...bude to něco s přepínačem /MT a nebo použitím jiné knihovny než libcmtd...třeba zkus msvcrt...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  15. #15
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    A nebo na to kašli a zkus ten GetAsyncKeyState()...zkoušel jsem to teď v konzoli a funguje...

    krátký příklad :
    Kód:
    #include "stdio.h"
    #include "windows.h"
    
    int main&#40;int argc, char**argv&#41;
    &#123;
      while&#40;TRUE&#41;
        if&#40;GetAsyncKeyState&#40;VK_ESCAPE&#41; & 0x8000&#41;
          break;
    &#125;
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  16. #16

    Standardní

    diky,
    samotny tento priklad mi funguje,
    ale v mem projektu mam
    Kód:
    #include <winsock2.h>
    #include <iostream>
    #include <time.h>
    #include <string.h>
    a jakmile tam pridam
    Kód:
    #include "stdio.h" 
    #include "windows.h"
    tak to hodi 99 erroru a 11 varovani, kvuli tomu, ze nektere fce jsou definovany ve winsock i windows, takze to hlasi redefinition of....
    Da se toto nejak obejit?
    Diky moc
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  17. #17
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Jo..vymaž include <winsock...>, je to automaticky includováno, když zapíšeš include <windows.h>....stdio.h nepotřebuješ, je tam zbytečně

    EDIT:
    A nebo kdyby to nefungovalo, tak zadej
    #include <windows.h>
    #include <winsock2.h>
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  18. #18

    Standardní

    to nechapu,
    porad to nefunguje,
    mam threadovany program, v hlavni fci je for ( ; ; ) {blablabla....GetAsyncKeyState...blablabla
    if (konec) break;.....atd}
    A proste to ne ESC nereaguje
    uz fakt nevim, co s tim, ten tvuj priklad fungoval, ale v mem projektu to potom nejde

    EDIT2: data jdou posilat do doby, nez se zmackne escape, ale jakmile se zmackne, tak program zamrzne
    AMD Barton 2500+@2152MHz(12.5*172/1,65V) AQXFA 0335MPMW @ ASUS A7V8X full @ Cooper Silent 2 TC Rev.2 lapped@ 512MB DDR333 @ GeForce 4 Ti4200 128MB 310/610MHz @ Samsung SpinPoint 160GB S-ATA + WD 80GB JB 8MB @ DVD LG GSA-4163B @ DVD Pioneer 106s @ SB Audigy Player @ Fortron 350W+12cm fan @ Edimax EW-7128G
    Mobile : DELL Inspiron 1520

  19. #19
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    324

    Standardní

    Citace Původně odeslal mudboy
    to nechapu,
    porad to nefunguje,
    mam threadovany program, v hlavni fci je for ( ; ; ) {blablabla....GetAsyncKeyState...blablabla
    if (konec) break;.....atd}
    A proste to ne ESC nereaguje
    uz fakt nevim, co s tim, ten tvuj priklad fungoval, ale v mem projektu to potom nejde

    EDIT2: data jdou posilat do doby, nez se zmackne escape, ale jakmile se zmackne, tak program zamrzne
    No vždyť to sám píšeš...máš threadovaný program...takže program může skončit až skončí všechny thready. Takže když zmáčkneš escape, musíš dát ostatním threadům návěst, že musí skončit a až skončí, tak pak můžeš ukončit program....
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •