Kezdőoldal » Számítástechnika » Programozás » Milyen módon lehet 1 szerverre...

Milyen módon lehet 1 szerverrel több kliens kezelni?

Figyelt kérdés
Hogyan tudok a kliensek között különbséget tenni hogy egyedi kliensnek tudjak csak üzenetet küldeni? (delphibe csinálom)
2011. febr. 4. 21:05
 1/2 anonim ***** válasza:

Két módot ismerek.

Az első az, hogy minden kliensnek külön szálat indítasz. A szálat mindig a kliens csatlakozásakor indítod, és használva lokális változókat tudni fogod, hogy ki küldött és mit. (látsd: TThread és TCustomThread)

A második az, hogy csak egy szálat indítasz. Ekkor valójában két szál van, mivel neked egy olyan hálózati osztályt kell használnod, ami egy pufferben tárolja a fogadott adatokat, amíg a program fel nem dolgozza őket.


Az első megoldás jelentősen gyorsabb, és jobban reagál, viszont lelassul, ha túl sokan próbálnak egyszerre adatokat küldeni. A másodikat nehezebb megcsinálni, és az esetek nagyrészében lassabb is, de ha összevegyíted az elsővel, és annyi szálat hozol létre ahány magos processzorral rendelkezik a szerver gép, és egyenletesen osztod el a klienseket, közben figyelve az aktivitást, ami szerint átcsoportosítod őket, akkor gyorsabb. :P

2011. febr. 4. 21:27
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
Hááát nem tudom, a dupla mutexelés miatt (ugye az oprendszer is rendelkezik egy hálózati pufferrel, amihez a több szál akar hozzáférni, meg te szálcsoporton belül is pufferelsz) szerintem nem lesz gyors a kombinált. Az első a "szabványos" megoldás, főleg kisebb szerver alkalmazásoknál. Azaz van egy szál, ami folyamatosan blokkolódik, mert kapcsolódásra vár, amikor jön, indít egy új szálat, ami ezt a kapcsolatot szolgálja ki, és visszatér a várakozó állásba.
2011. febr. 5. 09:21
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!