C# TCP szerverrel hogy lehet megoldani?
Van a szerver és a kliens.
A szerver egy console ablak és a kliens egy win form.
Hogy lehetne azt megcsinálni, hogyha a console ablakba beírom azt hogy: box,
akkor akinél nyitva van a kliens annak megjelenítsen egy MessageBox-ot.
Egy lehetséges megoldás váza:
Szerveren -háttérszálban, hogy ne fagyjon be a UI- várakozik a TCPListener, bejövő kapcsolat esetén NetworkStreamet nyit, amelyet úgy tudsz kezelni, mint bármely más streamet. A billentyűzetről történő beolvasást végző modul eseményeket generál, amelyre távoli fél kapcsolatának kezeléséért felelős objektumokat feliratkoztatod, amelyek az esemény hatására elküldik a Stringet.
Kliens:
Háttérszálban nyit egy kapcsolatot, majd folyamatosan olvassa ezt (ha nincs adat, blokkol az olvasás). Ha érkezik String, erről eseményt generál, amelyet GUI szálban kezelsz le, és MessageBox-ot dobsz hatására fel.
Őh.. Hát, lehet velem van a baj de nem teljesen értem.
Az oka az lehet hogy a szerver téren még kezdő vagyok.
#1: nem egyszerűbb, ha már eleve a kliensnél indul a TCPListener? Mert ugye neki kell figyelnie a "szerver" által küldött adatokat. Tudom, kicsit kifordított a dolog ha szerverben és kliensben gondolkozunk.
Kérdező: indulj onnan, hogy két gépet TCP kapcsolaton keresztül össze tudj kötni. TCP kommunikáció esetén pedig én hanyagolnám a szinkron szálkezelést és aszinkron módon kezelném a kapcsolatot.
Az összeköttetés megvan.
Könnyebb lenne ha linket vagy kódot írna valaki arról hogy hogyan kell.
#3: mivel azt írta, hogy több kliens is csatlakozhat a szerverhez, szerintem nem.
Kérdező: ha megy az egy-egy kapcsolat, mi a probléma? MSDN oldalán is érhető el példakód a TCPListener használatához:
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!