Net és C #, kliens-szerver alkalmazás egy patak socket tcp

A következő példa a TCP, hogy biztosítsa a zökkenőmentes, megbízható kétirányú bájtos folyamok. Készítünk egy teljes jelentkezési lapot, kliens és szerver. Először megmutatjuk, hogyan kell építeni a streaming TCP socket szerver, majd a kliens alkalmazás tesztelésére szerveren.







A következő program létrehoz egy fogadó szerver kapcsolódási kérelmeket az ügyfelek. A szerver alapú szinkronban, ezért a szál blokkolva, amíg a kiszolgáló nem adja beleegyezését a kapcsolatot az ügyféllel. Ez az alkalmazás mutatja, egy egyszerű szerver válaszol a kliensnek. Az ügyfél befejezi a kapcsolatot egy üzenetet küld a szerver .

TCP szerver

Létrehozása szerver struktúra látható a következő funkcionális diagram:

Net és C #, kliens-szerver alkalmazás egy patak socket tcp

Itt a teljes SocketServer.cs programkód:

Nézzük meg a program szerkezetét.

Itt IPEndPoint osztály localhost port 11000. Továbbá egy új példányt a Socket osztályt hozzon létre egy patak aljzatba. Beállítása helyi végpontot kell várni kapcsolatok, akkor létrehozhat egy foglalat:

A SocketType különböző paraméter TCP és UDP socket. Ezt meg lehet határozni, beleértve a következő értékeket:

Támogatja a hozzáférést az alapvető átviteli protokoll.

Támogatja streaming foglalat. Jelentés Áramlat megköveteli, hogy írja TCP protokollt.

A harmadik és egyben utolsó paraméter határozza meg, hogy milyen típusú protokoll szükséges az aljzat. A RrotocolType paraméter adja meg a következő legfontosabb értékek - TCP, UDP, IP, Raw.

A következő lépés kell a kijelölését egy foglalat segítségével Bind () módszer. Amikor egy foglalat van nyitva tervező, ő nem kapott nevet, de csak fenn leíró. Bind () metódus meghívásakor nevet hozzárendelni a szerver socket. Ahhoz, hogy a foglalat ügyfél azonosítására TCP stream socket, a szerver program célja, hogy a név a foglalat:

Bind () módszer kötődik a foglalat a helyi végpontot. Hívja a Bind () metódus előtt szükség van minden olyan kísérletet, hogy hozzáférjen a Listen () és elfogadás ().

Most hozzunk létre egy foglalat és a hozzátartozó név, akkor figyelj, hogy a bejövő üzeneteket módszerrel Hallgat (). A hallgatási aljzat képes lesz hallgatni a bejövő kapcsolat kísérlet:







A paraméter határozza elmaradás (elmaradás). jelezve a kapcsolatok maximális számát függőben sorban. Ebben kód értéke lehetővé teszi, hogy a felhalmozási a sorban legfeljebb tíz kapcsolat.

Hallgatva az állam fel kell készülnie, hogy elfogadja a kapcsolatot az ügyféllel, ami elfogadás () módszerrel. Ezzel a módszerrel egy olyan vegyület, melyet a kliens és végződik kommunikáció létrehozásában és az ügyfél-kiszolgáló nevét. Elfogadás () módszer a hívó blokkok a folyamat folytatja a vegyületet.

Accept () metódus kivonja az első csatlakozási kérelemre a sorból kiemelkedő kéréseket, és létrehoz egy új socket való feldolgozása. Bár az új foglalat jön létre, az eredeti socket továbbra hallgatni, és fel lehet használni a multi-thread feldolgozása vevőegységektői kapcsolódási kérelmeket az ügyfelek. Nincs szerver alkalmazása nem zárja be a hallgatási aljzatba. Azt kell folytatni a munkát együtt socket által létrehozott elfogadás feldolgozni a bejövő ügyfél kéri.

Ha a kliens és a szerver létrehozta a kapcsolatot, akkor üzenetek küldésére és fogadására módszerekkel küldés () és fogadása (osztály csatlakozó).

Küldj () metódus írja a kimenő adatok aljzat, amelybe a kapcsolat létrejön. Fogadás () metódus kiolvassa a bejövő adatfolyam aljzatba. Amikor alapuló rendszer TCP, mielőtt végrehajtaná az eljárás Send () és fogadása () a socket kapcsolatot kell létesíteni. A pontos protokoll két kommunikáló entitások kell adni előre a kliens és szerver alkalmazások ne takarja egymást, nem tudva, hogy kinek kell küldeni az adatokat az első.

Amikor az adatcsere kliens és szerver között befejeződött, lezárja a kapcsolatot a lekapcsolás () és zárt ().

SocketShutdown - ez a felsorolás tartalmazza a három érték a stop: Mind - abbahagyja adatok küldésére és fogadására aljzat kapnak - nem fogad adatokat aljzat és küldés - nem küld adatokat aljzatba.

A foglalat zárva hívás esetén az eljárás következő (), ami szintén meghatározza az ingatlan értéke dugaszoló hamis.

Ügyfél TCP

A funkciók, melyek létrehozásához használt kliens alkalmazás, többé-kevésbé hasonlít egy szerver alkalmazás. Ami a szerver, ugyanazon módszerek annak meghatározására, a végpont, socket létrehozása például, adatok küldésére és fogadására, valamint a záró az aljzat:

Net és C #, kliens-szerver alkalmazás egy patak socket tcp

Itt van a teljes kód a SocketClient.cs és a magyarázat:

Az egyetlen új módszer - Connect () metódus. használt csatlakozni egy távoli szerverhez. Az alábbi ábrán a kliens és a szerver akcióban:

Net és C #, kliens-szerver alkalmazás egy patak socket tcp




Kapcsolódó cikkek