IP hálózat létrehozása c#?
Eleve kérdést sem tudsz feltenni, kérdező. Fogalmunk sincs, hogy mi a célod, mi a kiindulási alap, mire jutottál eddig, hol akadtál, mit tudsz, mit nem tudsz, stb.
Másrészt mi az, hogy "IP hálózat"? Az IP hálózat annyit jelent, hogy a hálózati gépek, eszközök (pontosabban azok hálózati interfészei) IP címzés alapján kommunikálnak egymással. De ez önmagában még nagy nulla.
Mit akarsz elérni, peer-to-peer TCP/IP kommunikációt? Vagy broadcast üzeneteket szeretnél dobálni? Vagy datagram alapú cucc kell? Vagy realtime kommunikációt szeretnél UDP-vel? Vagy mégis mi bánatos rosseb kell neked?
"A legjobb, amikor a debileknek a legnagyobb a pofája."
Mitagadás, neked elég nagy.
Köszönöm mindenkinek a "segítséget".
Örülök, hogy a világunk ilyen kedves es tökéletes emberekkel van tele. 😊
Gondolom ti mindannyian tökéletesek vagytok a saját teruleteiteken es sose keretek segítséget es sose akadt nehézségetek.
Minden embernek rólatok kene példát venni.
Tisztelet a kivételnek.
Konstruktív leszek.
Ha jól sejtem, TCP/IP kapcsolatot akarsz felépíteni két gép között. Ilyen esetben mindig van egy szerver és egy kliens. Általánosságban a kapcsolat felépítése úgy történik, hogy a szerver elkezdi figyelni, hogy jönnek-e bejövő kapcsolatok. Ha jön egy, akkor dönt, hogy elfogadja, vagy elutasítja. Ha elfogadja, akkor jött létre a kapcsolat. A kliens egyszerűen megpróbál csatlakozni a szerverre, és örül, ha az elfogadja a kapcsolatot, és szomorú, ha nem.
Egy TCP/IP végpontot két dolog azonosít: IP cím és port szám. Egy gépnek tetszőleges számú IP címe lehet, de IP címenként legfeljebb 65535 portot adhatunk meg. Egy IP-port kombinációt egyszerre csak egy alkalmazás használhat. A szerver oldali portok rögzítettek (többnyire), mert így tudják a kliensek, hogy hova kell csatlakozniuk. A kliens oldali portokat általában dinamikusan rendeli az operációs rendszer a kapcsolatokhoz.
A kapcsolatokat az operációs rendszer ún. socket objektumokon keresztül teszi lehetővé. Egy szerver oldali alkalmazás úgy működik, hogy a gép meghatározott IP címeit és portjaira létrehoz egy socket-et, és azon figyeli a bejövő kapcsolatokat. (Erre mondjuk, hogy "listener") Amikor érkezik egy bejövő kapcsolat, létre jön egy új szerver oldali socket objektum, aminek a másik oldalán a kliens van (remélhetőleg) Kliens oldalon egyszerűbb a helyzet a cél IP+port párost meg kell határozni, azokkal létre kell hozni egy socket objektumot, és csatlakozni a szerverre, ami - remélhetőleg - elfogadja a kapcsolatot.
.Net-ben ehhez a System.Net.Socket osztályt kell példányosítani és megfelelően paraméterezni. Érdemes belemélyedni a szálkezelésbe, mert a szerver oldali listener, és mind a szerver és kliens oldali kommunikáció akkor működik jól, ha saját szálon fut.
Célszerű körülnézni, hogy speciális igényekre vannak-e kész NuGet csomagok. Sőt, akár maga a .Net is tartalmazhat kész megoldást (pl. HttpClient a http request-ek kezelésére)
TL; DR: Szerver: csinálj egy Socket objektumot, egy szálban figyeld, hogy jön-e bejövő kapcsolat. Ha jön, akkor indíts új szálat az elfogadott klienssel. Kliens: csinálj egy szálat, amiben példányosítasz egy Socket objektumot, és csatlakozz a szerverre.
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!