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.
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
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
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
MSDN->CreateProcess, CreateThread apod.Původně odeslal mudboy
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
Hm to nevim, pod windowsama neprogramuju. Zalezi jakou potrebujes portabilitu. Glib je tusim taky multiplatformni (POSIX unixy a Windows).Původně odeslal mudboy
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
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
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
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
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
Mělo by...
a nebo zkus něco jako toto...
fce kbhit() by měla být v conio.h..[/code]Kód:if (kbhit()) { key = getch(); if (key == '1') ....
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
Tak tohle mi bohuzel nejede,Původně odeslal Anduril
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
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(x) usleep((x)*1000) static int inited=0; static struct termios ori; static void tcatexit(){ tcsetattr(0,0,&ori); } static void init_terminal(){ struct termios t; tcgetattr(0,&t); tcgetattr(0,&ori); t.c_lflag &= ~(ICANON); tcsetattr(0,0,&t); atexit(tcatexit); } static inline int kbhit(){ fd_set rfds; struct timeval tv; if (!inited){ inited=1; init_terminal(); } FD_ZERO(&rfds); FD_SET(0, &rfds); tv.tv_sec = 0; tv.tv_usec = 10*1000; return select(1, &rfds, NULL, NULL, &tv)>0; } static inline int getch(){ fd_set rfds; if (!inited){ inited=1; init_terminal(); } FD_ZERO(&rfds); FD_SET(0, &rfds); if (select(1, &rfds, NULL, NULL, NULL)>0) return getchar(); else{ printf("wincompat.h: select() on fd 0 failed\n"); return 0xDeadBeef; } } #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
chjo,
to mi zase vraciLIBCMTD.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
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...Původně odeslal mudboy
![]()
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
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(int argc, char**argv) { while(TRUE) if(GetAsyncKeyState(VK_ESCAPE) & 0x8000) break; }
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
diky,
samotny tento priklad mi funguje,
ale v mem projektu mama jakmile tam pridamKód:#include <winsock2.h> #include <iostream> #include <time.h> #include <string.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....Kód:#include "stdio.h" #include "windows.h"
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
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
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
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....Původně odeslal mudboy
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
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)