NameServer készítés, hogyan?
Van több szerveren, jelen esetben ez legyen kettő. A szerverek tényleges szerepe nem számottevő, a lényeg a kommunikáción van. Valamint van egy vagy több kliens.
Szerver :
Kliens:
Azért tettem fel csak 1 kliens, mert a többi is 99%-ban hasonló.
A kérdés az lenne, hogy hogyan tudom ezeket a szervereket egy "NameServer"-be listázni. Amikor a kliens kapcsolódni szeretne bármely szerverhez, azt nem közvetlenül tenné meg, hanem a NameServer-en keresztül. PL: Ha a NameServer kapna egy "P" utasítást, akkor felépítené a kapcsolatot a PrintServerrel, és amit onnan kapna azt továbbítaná a felhasználónak.
Egyelőre a szerverek megkülönböztetését egy bizonyos string-el különböztetném meg, ami ha "P", akkor PrintServert szeretne elérni a kliens, ha "K" akkor mondjuk CriptServer.
Mivel klienst is és szervert is tudsz írni ezeket kell kombinálnod a 'NameServer' alkalmazásodban.
A NameServer a felhasználók felé mint szerver viselkedik (a felhasználók kapcsolódnak hozzá), a Print és Cript felé pedig mind kliens, vagyis Name kapcsolódik Print és Cript-hez (ha jól értettem a kérdést).
Tegyük fel, hogy NameServer 1db konstans kapcsolatot tart fenn PrintServer és CriptServer felé. Vagyis induláskor indítasz 2 connect-et Print és Cript megfelelő ip-jére és portjára. Ebből lesz neked 2db socketed NameServer oldalon. Amikor a felhasználó kapcsolódik annak függvényében, hogy "P"-t vagy "K"-t kapsz továbbítod az üzenetet a megfelelő socketre.
De azt javaslom, hogy ne ez legyen a következő probléma amit megoldasz. Először próbálj meg olyan szervert írni ami képes több kliens socketet kezelni egyszerre (a példád nem tud). Ehhez először ismerkedj meg a szálkezeléssel. Ha az már megy akkor nézd át a 'select' és társai függvényeket. Ezek után már mennie kell annak amit csinálni szeretnél.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!