Hollosi Information eXchange /HIX/
HIX CODER 1157
Copyright (C) HIX
2001-04-25
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: szerver keresese lanon... (mind)  86 sor     (cikkei)
2 Re: Win uzenet (mind)  18 sor     (cikkei)
3 Union helyett ... ? (mind)  34 sor     (cikkei)
4 Re: Gepek keresese LAN-on (mind)  24 sor     (cikkei)
5 Re: Atlatszo form (mind)  61 sor     (cikkei)
6 Re: Gyakori szohoz jutas Win alatt (mind)  38 sor     (cikkei)
7 Re: Atlatszo form (mind)  21 sor     (cikkei)
8 Re: Atlatszo form (mind)  27 sor     (cikkei)
9 onmodositas ; virdef javitas (mind)  15 sor     (cikkei)
10 Anyanyelvi oktatas... (mind)  32 sor     (cikkei)
11 Online books megegyszer (mind)  15 sor     (cikkei)
12 Re: Visual C++ Debug (mind)  22 sor     (cikkei)
13 Re: C++ Kerdes (mind)  27 sor     (cikkei)
14 Re: Anyanyelvi oktatas... (mind)  22 sor     (cikkei)
15 Re: rezidens (mind)  17 sor     (cikkei)
16 Re: Gepek keresese LAN-on (mind)  18 sor     (cikkei)
17 Re:Gyakori szohoz jutas Win alatt ( 22 sor ) (mind)  126 sor     (cikkei)

+ - Re: szerver keresese lanon... (mind) VÁLASZ  Feladó: (cikkei)

tisztelt HIX CODER!

HC> Azt szeretnem lekerdezni, hogy egy adott geprol milyen gepeket
HC> lehet elerni lokalis halon.
HC> pl: Serverek/munkaallomasok (nev, vagy IP szerint)
HC> Konkretan arrol lenne szo, hogy az egyik gepen fut egy program,
HC> ami tulajdonkeppen szerverkent mukodik (munkaallomason is futhat)
HC> ez egy adott porton winsock2-vel kommunikal. Namost, jon egy
HC> uj kliens, ami csatlakozni akar, es azt szeretnem lekerdezni, hogy
HC> melyik gepe(ke)n fut a szerver progi. (Kenyelmesebb, ha nem
HC> az IP cimekkel kell bajlodni :))
HC> Merre erdemes elindulni?
hat... szeritnem a legkorrektebb, ha bekered
a felhasznalotol a szerver ip cimet... de...
az se art, ha adsz mellette kereses opciot...
tehat bejon a szerver nev/ip bekero ablakod,
de van egy kereses gomb....

nos.... es akkor innentol vegulis jon a keresesi algoritmus...
vegulis ket fele indulhatsz el...
1) fogod a sajat ip cimedet, es lekerdezed, hogy mi a domain neve...
   akkor fogod a domain nevet, leszeded az elso reszet (pl
   jancsigepe-gep.iroda.ceg.hu --> iroda.ceg.hu;) es fogod,
   es lekerdezed a ns rekordjat az iroda.ceg.hu-nak... amikor
   az megjott, akkor mar tudod, hogy ki az ugyeletes nevzseni
   (nevszerver;)... amikor ez megvan, akkor nyitsz feleje egy
   tcp kapcsolatot, es kuldesz egy axfr iroda.ceg.hu kerest...
   az axfr a zona transzfer, azaz, erre ha engedelyezve van,
   el kell kuldje az osszes domain nevet, amit csak o szamon
   tart.... innentol kezdve a dolgod a 3. pontban van leirva;))))
2) ha nincs nevszerver, vagy ez a megoldas kezenfekvobb, akkor...
   fogod az ip cimedet, meg a netmaszkot... az ip cimedet andeled
   a netmaszkal... ez lesz az elso cim, amit meg kell vizsgalj...
   utana fogod a netmaszkot, notolod... ez adja majd meg, hogy hany
   gepet kell tesztelj.... ez ugy elegge huzos lehet, ime egy pelda:
   ip=66.77.88.99  mask=255.255.192.0
   a tesztelendo gepek szama: 0.0.63.255  (azaz 16383 db gep;))))
   az elso tesztelendo gep cime: 66.77.64.0
   az utolso tesztelendo gep szama: 66.77.127.255
   tehat ha ez megvan, akkor megvan az ip tartomanyod:
   66.77.64.0 --> 66.77.127.255
   ebbol az elso cim a multicast cim, az utolso pedig a broadcast cim...
   tehat ezeket a cimeket ne abajgasd... a maradek 66.77.64.1 --> 66.77.127.254
   mar elvileg valodi gepek.... azt tudnod kell, hogy a gyakorlat az, hogy
   a munkaallomasok mennek a tartomany elejere, a vegetol visszafele
   eloszor a router(ek) utana a szerver(ek)... persze ez igen nagy
   mertekben fugg a rendszergazda szajizetol...;)))))))))))))))
   na de a lenyeg a lenyeg, hogy ezt a tartomanyt kell a 3. pontban
   leirtak alapjan vegigtesztelned... DE! amit meg tudnod kell, hogy
   altalaban a nagyobb cegeknek tobb ip tartomanya is szokott lenni...
   ez azert van igy, mert amikor megveszik az elso tartomanyt maguknak,
   akkor meg csak a fontosabb helyeken vannak gepek... kesobb mar tobb
   gep van, megtobb ip-re van szukseg, hat megveszik a kovetkezo tartomanyt..
   keves az olyan okos hely, ahol nem pazarolnak a titkaro gepere
   is kulon ip cimet, hanem socks4/5 vagy ipmasking van 4-5 _valodi_
   ip cimmel!!!
3) ha mar megvannak a domainek/ipcimek, amiket meg kell tesztelj,
   akkor mi sem egyszerubb... fogod magad, egyszerre (egyidoben!)
   mondjuk tesztelj 16-32 gepet... azert kell tobbet, hogy gyorsabban
   vegezz....;))) a teszt abbol all, hogy... fogod magad, dobsz eloszor
   egy pinget... (fontos, mert ha nem el a gep, akkor sok ido, amig a
   tcp eszreveszi, hogy nincs valasz....;)))) tehat dobsz egy pinget,
   ha nincs valasz, akkor storno... ha jon valasz, akkor probalsz egy
   tcp kapcsolatot nyitni a megadott portra.. ha osszejon, orulsz, mint
   az allat, hogy vegre talaltal egy szervert... (az se art, ha ilyenkor
   mesz tovabb, es ha mar belekezdtel, akkor megkeresed az osszes szervert;)
   ha megvannak a szerverek, akkor elmented valami fileba, hogy legkozelebb
   ne kelljen keresgelni... vagy ahogy gondolod....;))))

4) ha tenyleg csak helyi halos alkalmazasrol van szo, akkor azt is
   csinalhatod, hogy megkonnyitsd a keresest, hogy fogod a szerver
   kodot, es teszel bele egy tenyleg par soros modositast, hogy
   a hookolt tcp port melle hookolja meg az udp portot is...
   (es persze listeneljen is ra;) es amikor jon _barmi_ az udp
   portra, akkor valaszolsz a forras gepnek, hogy 'hello, itt vagyok'...
   ez azert buli, mert a tcp-t ugye nem lehet broadcastra nyitni...
   de udp csomagot mar lehet broadcastra kuldeni!!!! a lenyeg a lenyeg,
   a kliens gep kuld b.cast egy udp csomagot a megadott portra, amiben
   az van, hogy 'hol vagy te tetves szerver' erre a szerver megkapja
   a csomagot, es valaszul kuld egy udp csomagot, hogy 'ittvagyok
   te sz*ros kliens'....
   ismetlem, ez a keresgelesi elv persze csak lan-on muxxik, de
   azt hiszem, lanra ez a legjobb megoldas... (nem pazarol az eroforrasokkal,
   nem nehez lekodolni, stb....;)))

na tovabbi jo kodolast mindenkinek.... Mc
+ - Re: Win uzenet (mind) VÁLASZ  Feladó: (cikkei)

> Win32 alatt egy progit tobb peldanyban futtatok, es azt szeretnem ha
> egymasnak egy rovid szoveges üzenetet tudnanak küldeni. A progit Delphiben
> irom, szerintem ehhez API hivasok kellenek.

Nem szukseges API-t hasznalnod, mert eleg komplikalt.
Erre van a DDE (Dynamic Data Exchange). A Delphiben a DDEServerItem es
DDEClientItem komponenseket hasznalhatod. Nezz szet a Delphi helpben errol.
Elonye, hogy egyszeru, es kis szovegek atadasara megfelelo.
Ha kell reszletesebb leiras, szolj, azt hiszem, van egy peldaprogim
valahol.

Ha megis APIzni akarsz, akkor itt van egy otlet:
Definialsz egy user message-et : RegisterWindowMessage (nezd az API
helpet), amiben elkuldhetsz egy pointert a stringre, amit el akarsz kuldeni.

-- 
udvozlettel,
 Gergely
+ - Union helyett ... ? (mind) VÁLASZ  Feladó: (cikkei)

Hali, Coderek!

Meglehetosen kezdo C programozokent vettem at egy egychipes
processzorra, C-ben irt project folytatasat.
Mivel az 512 byte (nem KB, nem MB !!!  :-) memoriabol
szamomra vagy 60 byte maradt kiindulo feltetelkent,
pillanatok alatt azon kaptam magam, hogy rakenyszerulok az
eredeti globalis valtozok ismetelt ( es eletveszelyes…)
hasznalatara.
Kerdesem :

typedef struct {
	unsigned char data[24];
	unsigned char n,offset,encotype,received;
	unsigned int pattern;
	unsigned char width,height,textpos,standard;
	unsigned char checksum;
} BARCODE;

 ..	.	.	.	.	.	.	.
volatile BARCODE bc;
 ..	.	.	.	.	.	.	.

A fenti valtozokbol a "standard" es a "checksum" a programfa
altalam irt agan ronthato. Nekem viszont egy integer kene
helyettuk.
Tudom, hogy a magatol ertetodo valasz az, hogy unionnal
csinaljam meg. De… ez azt jelentene, hogy a bc.standard es a
bc.checksum minden elofordulasat tobb forrasfile-on at
editalnom kellene az uj helyzetnek megfeleloen.
Nem lehet valami "sunyi" modon radefinialni egy int valtozot
erre a ket karakteresre?

Koszi, RX
+ - Re: Gepek keresese LAN-on (mind) VÁLASZ  Feladó: (cikkei)

>Azt szeretnem lekerdezni, hogy egy adott geprol milyen gepeket
>lehet elerni lokalis halon.
>pl: Serverek/munkaallomasok (nev, vagy IP szerint)
>
>Konkretan arrol lenne szo, hogy az egyik gepen fut egy program,
>ami tulajdonkeppen szerverkent mukodik (munkaallomason is futhat)
>ez egy adott porton winsock2-vel kommunikal. Namost, jon egy
>uj kliens, ami csatlakozni akar, es azt szeretnem lekerdezni, hogy
>melyik gepe(ke)n fut a szerver progi. (Kenyelmesebb, ha nem
>az IP cimekkel kell bajlodni :))
>
>Merre erdemes elindulni?
A problemat legegyszerubben un. broadcast uzenetekkel lehet megoldani.
A szerverek felderitesehez a kliensnek UDP broadcastot kell kuldeni egy
olyan portra, amin a szerver alkalmazasok "figyelnek". A broadcast egy olyan
specialis csomag, amit minden a helyi halozaton levo gep meg fog kapni. (Az,
hogy a "helyi halozat"-ba egy adott gep beletartozik -e vagy sem a
subnetmask es az IP cim egyutt hatarozza meg, es nem az, hogy egy kabelen
vannak -e vagy sem.) Ha egy szerver fogad egy ilyen csomagot, akkor vissza
kell kuldenie a felado (a kliens) cimere egy valaszt (ez mar ne broadcast
legyen, hanem sima peer-to-peer uzenet!). A kliens a valaszcsomagokbol mar
konnyen megallapithatja a szerver szamat es IP-cimet.

Gabor
+ - Re: Atlatszo form (mind) VÁLASZ  Feladó: (cikkei)

>Delphiben szeretnek atlatszo formot kesziteni... de nem megy! :)
>Alitottam mar a form osszes tulajdonsagat, de max oda jutottam,
>hogy nem volt kerete, es a form szine megegyezett az aszatal
>szinevel... /aztan lehet hogy valamit kihagytam :) /Ez azomban
>keves nekem, mert ez sajnos nem atlatszo. Javasoltak mar API
>fugvenyt is, amivel meg lehet adni az ablak stilusat, es akar azt
>is hogy atlatszo legyen, ez azonban nem mukodik... vagy rosszul
>magyaraztak. :) Szoval ez ugyben kerem a segitsegeteket, amit
>mar most koszonok: Misi
Attetszo ablakot (ha ezt akarnal, csak nem tudod kifejezni magad), tehat ami
mogol attunik a mogottes tartalom nem lehet Windows alatt kesziteni.
Kozelito megoldasok leteznek, de azt hogy gyakorlatilag a mogottes valtozo
tartalom is villogasmentesen megjelenjen az ablak "alatt" lehetetlen
megvalositani (legalabbis en nem lattam korrekt megoldast, pedig azert mar
ideje foglalkozok az ilyen dolgokkal).
Azt viszont minden tovabbi nelkul meg lehet oldani, hogy egy ablak bizonyos
teruleteken "lyukas" legyen, azaz teglalap alak helyett barmilyen
tetszoleges mas, szabalyos vagy szabalytalan alakzatot vegyen fel. Ehhez
mindossze letre kell hozni egy, az ablak alakjat definialo regiot es hozza
kell rendelni a SetWindowRgn() fuggveny segitsegevel. Pl. az alabbi pelda a
kozepen "kilyukasztja" az ablakot:

procedure TForm1.FormCreate(Sender: TObject);
var R1,R2,R3: HRGN;
;

(A fenti kod gyakorlatilag azt csinalja, hogy eloszor hagyja az eredeti
uzenetkezelot vegrehajtodni, majd ha az azt mondana, hogy az ablak kliens
teruletere, azaz a "hatterebe" klikkeltunk, akkor a visszateresi erteket ugy
modositja, hogy a Windows azt "higyje", hogy az ablak cimsoran klikkeultunk,
es igy eri el hogy az ablakon belulre barhova kattintva vontathatova valik.)

Gabor
+ - Re: Gyakori szohoz jutas Win alatt (mind) VÁLASZ  Feladó: (cikkei)

>[...]A lényeg az, hogy szeretném
>elérni, hogy a programom nagyon surun kapjon szót a Win-tol.
>Jelenleg úgy tunik, hogy 10ms-os kihagyásokkal dolgozik, ami
>számomra nagyon elégtelen, lévén ms-nál pontosabb idomérésre van
>szükségem, és így érthetoen ms-nál surubb szóhoz jutásra is.
>(Sajnos a WM_TIMER nem alkalmas erre a célra, mert az csupán 54ms-
>onként jelez.)
>
>Van lehetoség annak biztosítására, hogy kb. 0.1 ms-onként szót
>kaphasson a program? Vagy legalábbis miképp lehetne minél jobban
>megnövelni a gyakoriságot? Akár olyan áron is, hogy kizárólagossá
>váljon a program, és más programnak ne adjon idot a Win --
>önmagának is minél kevesebbet. :-)
Probalkozhatsz a processz bazis- ill. a thread relativ prioritasanak
allitgatasaval (SetPriorityClass() ill. SetThreadPriority() API fuggvenyek),
de ez alapvetoen nem garancia semmire, hiszen csak a
konkurrenciahelyzetekben van ennek jelentosege a sorrend felallitasaban, de
meg a legmagasabb prioritas sem garantalja egyaltalan, hogy adott
idokozonkent megkapja a vezerlest a programod. Ez pedig nagyon egyszeruen
abbol kovetkezik, hogy az NT nem RTOS, azaz nem valosideju operacios
rendszer (a W9X-eket meg el lehet felejteni total ez ugyben, mert azokban
semmi sem biztos, csak a fagyas).
Egyebkent van egy specialis prioritasi osztaly, a realtime (v. time
critical), ami gyakorlatilag az jelenti, hogy az operacios rendszer magatol
sosem veszi el a vezerlest a processztol csakis megszakitaskeresek
kiszolgalasara. Ez viszont pont azert nem alkalmas periodikus idozitesek
megvalositasara, mert amig nem adja vissza a vezerlest a processz, addig
gyakorlatilag az egesz gep megall (szo szerint nem fut semelyik masik
osztalyu processz sem), viszont amint visszaadta a vezerlest, maris semmi
garancia nincs arra, hogy megfeleloen rovid idon belul ismet visszakapja
azt.
Szoval a helyedben elso korben a nagyfelbontasu v. multimedi idozito
rutinokkal, a timeBeginPeriod(), timeSetEvent() es tarsaival probalkoznek.
Ha ezekkel sem tudsz megfelelo pontossagu idozitest megvalositani, akkor
minden valoszinuseg szerint sajat drivert kell irnod a problema megoldasara.
Ez azonban eleg ciki...

Gabor
+ - Re: Atlatszo form (mind) VÁLASZ  Feladó: (cikkei)

{Add a button to a form and try this:}

procedure TForm1.FormCreate(Sender: TObject);
var
  FullRgn, ClientRgn, ButtonRgn: THandle;
  Margin, X, Y: Integer;
;

(webes bekuldes, a bekuldo gepe: m38-gyor.elender.hu)
+ - Re: Atlatszo form (mind) VÁLASZ  Feladó: (cikkei)

> Felado : =?iso-8859-1?Q?Daruka_Mih=E1ly?=
> E-mail :  [International]
> Temakor: Atlatszo form ( 11 sor )
> Idopont: Mon Apr 23 21:43:06 CEST 2001 CODER #1156
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Udvozlok mindekit!
>
> Delphiben szeretnek atlatszo formot kesziteni... de nem megy! :)
> Alitottam mar a form osszes tulajdonsagat, de max oda jutottam,
> hogy nem volt kerete, es a form szine megegyezett az aszatal
> szinevel... /aztan lehet hogy valamit kihagytam :) /Ez azomban
> keves nekem, mert ez sajnos nem atlatszo. Javasoltak mar API
> fugvenyt is, amivel meg lehet adni az ablak stilusat, es akar azt
> is hogy atlatszo legyen, ez azonban nem mukodik... vagy rosszul
> magyaraztak. :) Szoval ez ugyben kerem a segitsegeteket, amit
> mar most koszonok: Misi

Helló!

Nézd meg az MSDN - ben a SetLayeredWindowAttributes API fv - nél,
viszont azt hiszem csak W2K alatt megy, de gondolom lehet barkácsolni is
 .....

csá

Doma
+ - onmodositas ; virdef javitas (mind) VÁLASZ  Feladó: (cikkei)

Szevasztok!

Valoban felreertheto volt amit irtam! Termeszetesen a polimorf virusokat nem
az osszes variacio eltarolasaval ismerik fel (nincs akkora winyo, meg
gepido!).

Mc36-nak:
Arra probaltam utalni, hogy a polimorf virus onmagaban nem alkalmaz
kriptografiat, az mar lopakodo virus. Peldakent csak a korai peldanyokat
'reszleteztem'. Egyebkent sem tartom jo dolognak ezt bovebben taglalni. Aki
virust akar irni legalabb vegye a faradtsagot, hogy beleassa magat (vagy egy
virusgeneratort :-).

Tovabbi egyeb codolast!
Sipi
+ - Anyanyelvi oktatas... (mind) VÁLASZ  Feladó: (cikkei)

Ok, akkor "no flame" jegyeben :-))

Programozok asm-ben, ismerem ezeket az utasitasokat, sot,
en is gyakran mondok clock-ot orajel helyett, sokszor
pontosabb is az eredeti kifejezes, mint egy szerencsetlen
magyaritas.

De   n e m   errol beszelek!

Az piszkalt, hogy aki ilyen ertoje egy teruletnek, akinek
az irasabol latszik, hogy igenyes munkara is ke'pes, az
hogy adhatja le odaig, hogy a helyzet helyett

> egyedul csak looppal nehez a hejzet <<

lesz, hogy a kifejezes helyett

> latsz par idegen kifelyezest <<

lesz...

Valoban oszinte erdeklodessel olvastam a hozzaszolasod,
tanultam is belole. Ugy gondolom, hogy ilyen szakmai
beltartalom igenyesebb kulso illet meg.

Vannak a viccesek, akik csak ugy tudjak leirni a "sokszor"
szot, hogy "soxor", ezzel 2 billentyuleutest takaritanak
meg, ez mintegy 100-100 ms-ot is kitesz egy levelben.

Nekik nem erdemes szolni. De Te tobb vagy ezeknel!

Kekec111, a magyartanar
+ - Online books megegyszer (mind) VÁLASZ  Feladó: (cikkei)

Koszonom mindenkinek a segitseget, de a problema meg mindig adott (ti: a
docs.online.bg siterol nem tudok letolteni konyveket a sajat gepemre)

Az a problema kedves Coderek, hogy ha errol a site-rol automatikusan akarok
letolteni oldalakat (a linkekkel egyutt tobb szint melysegben), akkor a
letoltogeto progi gyors kereseire mindig egy ilyen szovegeket tartalmazo
oldal jon le:
"Hold down your horses! It is not polite to read them that fast! ..."

Szoval lehet hogy az lenne a megoldas, ha le lehetne lassitani az
automatikus letoltogeto progit (pl az oldalak lekerese kozott varjon par
masodpercet).
Vagy megis menjek be a boltba, es vegyem meg a konyveket? :)

Gabor
+ - Re: Visual C++ Debug (mind) VÁLASZ  Feladó: (cikkei)

> Kedves Mindenki !
>
> Visual C++ 6.00 Debug modban a Debug Ablakban allandoan jonnek a
> kovetkezo uzenetek (Amugy a project jol mukodik, de nagyon zavaro)
>
> Loaded 'C:\WNT\System32\ntdll.dll', no matching symbolic information
> found.
> Loaded 'C:\WNT\system32\KERNEL32.DLL', ...
>  .....stb...
> Loaded 'C:\WNT\system32\lz32.dll', no matching symbolic information
> found.
>
> Hogyan tudnam ezeket a felesleges uzenetek megszuntetni?
> Koszi Tibor

Hello!
Telepíteni kell a debug system dll-eket. Már nem emlékszem, hogyan hívják,
de a MSVS setup-kor külön fel is hívja rá a figyelmet. Már amennyiben NT-n
van...


Robi
+ - Re: C++ Kerdes (mind) VÁLASZ  Feladó: (cikkei)

> Sziasztok
>
> Ez a problemam:
>
> #include <iostream.h>
> void main(void)
> {
> int   *ptraddr; /* Mutató a port címek helyére */
> int address; /* A port címe */
> ptraddr= (int *) 0x00000408;/*ezen a cimen kellene
>           bejegyezve lennie az LPT1 baziscimenek*/
> address = *ptraddr;/* itt okoz laphibat, a debuger azt
> mondja: "Access Violation"*/
> cout << address;
> }
>

Win98-on nem fog menni. Védett Mód!!! Nem a "tiéd" az a memória... :))
Megoldás:
- az LPT-t file-ként használni. (CreateFile) Microsoft már megírta a
drivert. Miért nem jó az?
- ha egyszeru I/O-nál többre van szükség akkor a DeviceIOControl.
- esetleg (favágó megoldás) Registry-bol megtudni a portcímet.
(HKEY_LOCAL_MACHINE\ENUM\BIOS) A port I/O menni fog.
- Végül saját driver írása...

Robi
+ - Re: Anyanyelvi oktatas... (mind) VÁLASZ  Feladó: (cikkei)

> > be-beszurunk minden utasitas koze randomnyit, akkor a dekodolo is mindig
> > random formaju lesz... egyedul csak looppal nehez a hejzet << detucc
> > magyaru !!!
> HC> Majha nyoceves lesze megtanusz.
> teljesen igazad van... de azert ehez hozzatennek valamit...
> random: egy fuggveny neve...
> dekodolo: okes, ezt irhattam volna ugy, hogy visszatitkosito...
> loop: egy asm utasitas neve...
> kerhetem...
>
> DE! meg mielott egy szakszovegben talalt idegen kifelyezes miatt
> beszolsz, elobb menj vegig a koruton, es verd le az osszes ceger-tablat,

Hello!

Félreértetted. Szerintem a "hejzet", a "kifelyezés" és tsai volt a probléma,
nem a szakszöveg.
És ennek tényleg nem itt van a helye.

Bocs, hogy beleszóltam.

Robi
+ - Re: rezidens (mind) VÁLASZ  Feladó: (cikkei)

> Sziasztok!
>
> Hogy lehet egy C programot rezidense tenni? Pascalban van hozza egy
> keep nevu utasitas, remelem C-ben is akad hasonlo.

Hello!

void _dos_keep( unsigned char status, unsigned size );
void keep( unsigned char status, unsigned size );

A dos.h-ban vannak deklarálva. Mindketto a DOS 0x31-el lép ki.

a size paraméter paragraph-ban jelenti a memóriát, amennyit a kilépés után
még a program igényel. A többit a DOS felszabadítja.


Robi
+ - Re: Gepek keresese LAN-on (mind) VÁLASZ  Feladó: (cikkei)

On 23 Apr 2001, at 14:13,  wrote:

> Konkretan arrol lenne szo, hogy az egyik gepen fut egy program,
> ami tulajdonkeppen szerverkent mukodik (munkaallomason is futhat) ez
> egy adott porton winsock2-vel kommunikal. Namost, jon egy uj kliens,
> ami csatlakozni akar, es azt szeretnem lekerdezni, hogy melyik
> gepe(ke)n fut a szerver progi. (Kenyelmesebb, ha nem az IP cimekkel
> kell bajlodni :))

Mi ugy csinalunk ilyet, hogy a kliens broadcast-ol egy uzenetet egy
portra, amire a szerverek visszaszolnak, hogy megvannak (ok mar
tudjak, hogy melyik IP-rol jott a broadcast). Persze ezt akkor lehet
csinalni, ha a szerver progi sajat gyartmany...

István

--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re:Gyakori szohoz jutas Win alatt ( 22 sor ) (mind) VÁLASZ  Feladó: (cikkei)

Szia tamas,


> Korábbi idomérési kérdésem egyik folyománya a mostani. Lehet, hogy
RTDSC utasitas hasznalata persze csak pentium felett van meg. :)
A lefutott kod idejet nagyon pontosan meg tudod merni.

> Jelenleg úgy tunik, hogy 10ms-os kihagyásokkal dolgozik, ami
> számomra nagyon elégtelen, lévén ms-nál pontosabb idomérésre van
> szükségem, és így érthetoen ms-nál surubb szóhoz jutásra is.
Sajat idozito rutint kell hasznalnod.

> (Sajnos a WM_TIMER nem alkalmas erre a célra, mert az csupán 54ms-
> onként jelez.)
Az nem is ilyen pontos esetekre van.

> Van lehetoség annak biztosítására, hogy kb. 0.1 ms-onként szót
> kaphasson a program? Vagy legalábbis miképp lehetne minél jobban
> megnövelni a gyakoriságot? Akár olyan áron is, hogy kizárólagossá
> váljon a program, és más programnak ne adjon idot a Win --
> önmagának is minél kevesebbet. :-)
Szerintem a SetThreadPriority a te baratod :)

Hozz letre egy Thread-et. (magyarul: Szal-at)
Es allitdsd be a prioritasat
Ime amit a Help mond rola.
Bocsi ha kicsit hosszu voltam.

Alex.
-------------------

The SetThreadPriority function sets the priority value for the specified thread
 . This value, together with the priority class of the thread's process, determi
nes the thread's base priority level.

BOOL SetThreadPriority(

    HANDLE hThread,	// handle to the thread
    int nPriority 	// thread priority level
   );


Parameters

hThread

Identifies the thread whose priority value is to be set.
Windows NT: The handle must have the THREAD_SET_INFORMATION access right associ
ated with it. For more information, see Thread Objects.

nPriority

Specifies the priority value for the thread. This parameter can be one of the f
ollowing values:

Priority                        Meaning
THREAD_PRIORITY_ABOVE_NORMAL    Indicates 1 point above normal priority for the
 priority class.
THREAD_PRIORITY_BELOW_NORMAL    Indicates 1 point below normal priority for the
 priority class.
THREAD_PRIORITY_HIGHEST         Indicates 2 points above normal priority for th
e priority class.
THREAD_PRIORITY_IDLE            Indicates a base priority level of 1 for IDLE_P
RIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a b
ase priority level of 16 for
REALTIME_PRIORITY_CLASS processes.
THREAD_PRIORITY_LOWEST          Indicates 2 points below normal priority for th
e priority class.
THREAD_PRIORITY_NORMAL          Indicates normal priority for the priority clas
s.
THREAD_PRIORITY_TIME_CRITICAL   Indicates a base priority level of 15 for IDLE_
PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a
base priority level of 31 for
REALTIME_PRIORITY_CLASS processes.


Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error informat
ion, call GetLastError.

Remarks

Every thread has a base priority level determined by the thread's priority valu
e and the priority class of its process. The system uses the base priority leve
l of all executable threads to determine
which thread gets the next slice of CPU time. Threads are scheduled in a round-
robin fashion at each priority level, and only when there are no executable thr
eads at a higher level does scheduling of
threads at a lower level take place.
The SetThreadPriority function enables setting the base priority level of a thr
ead relative to the priority class of its process. For example, specifying THRE
AD_PRIORITY_HIGHEST in a call to
SetThreadPriority for a thread of an IDLE_PRIORITY_CLASS process sets the threa
d's base priority level to 6. For a table that shows the base priority levels f
or each combination of priority class and
thread priority value, see the SetPriorityClass function.

For IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, and HIGH_PRIORITY_CLASS process
es, the system dynamically boosts a thread's base priority level when events oc
cur that are important to the thread.
REALTIME_PRIORITY_CLASS processes do not receive dynamic boosts.
All threads initially start at THREAD_PRIORITY_NORMAL. Use the GetPriorityClass
 and SetPriorityClass functions to get and set the priority class of a process.
 Use the GetThreadPriority function to get
the priority value of a thread.

Use the priority class of a process to differentiate between applications that
are time critical and those that have normal or below normal scheduling require
ments. Use thread priority values to
differentiate the relative priorities of the tasks of a process. For example, a
 thread that handles input for a window could have a higher priority level than
 a thread that performs intensive
calculations for the CPU.
When manipulating priorities, be very careful  to ensure that a high-priority t
hread does not consume all of the available CPU time. A thread with a base prio
rity level above 11 interferes with the
normal operation of the operating system. Using REALTIME_PRIORITY_CLASS may cau
se disk caches to not flush, hang the mouse, and so on.

See Also

GetPriorityClass, GetThreadPriority, SetPriorityClass

-------------------

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS