Tankönyv vizuális alap - használatának winsock kontrola

Használata Winsock kontrola

Ez a szöveg egy szabad fordítás az MSDN és bemutatja a lehetőségét az adatok megosztását a hálózaton keresztül a Winsock komponens.

Valami kiegészített és javított egyetlen hiba az MSDN minta, amely miatt az átadás csak egy módja volt.

A Winsock komponens

WinSock komponens lehetővé teszi, hogy csatlakozzunk egy távoli gépen és adatcserét vele, az UDP (User Datagram Protocol) és a TCP (Transmission Control Protocol). Mindkét protokollok létrehozásához használt kliens-szerver alkalmazások. Csakúgy, mint az időmérője, WinSock ellenőrzés láthatatlan futási időben.

Hogyan kell használni?

- Ahhoz, hogy hozzon létre egy kliens alkalmazás, amely összegyűjti az adatokat, mielőtt elküldené a központi szerver;

- Ahhoz, hogy hozzon létre egy alkalmazás szerver, ami jár, mint a kollektor és letétkezelési információt a különböző kliens alkalmazások;

Protokoll kiválasztása.

Mikor tervezi, hogy egy WinSock, el kell dönteni, melyik protokollt használja - TCP vagy UDP. A fő különbség köztük abban rejlik, ahogyan a szervezet kommunikáció:

Connection alapuló UDP protokollt, mint a hang, az üzenet az egyik számítógépről a másikra, de nem világos, hogy ezek hallják egymást. Ezen túlmenően, a maximális adatátviteli van beállítva a hálózat.

Az a lehetőség, hogy melyik alkalmazásokat létrehozni függ a protokoll, amit választani. Íme néhány kérdés, amelyek segítségével válassza ki a megfelelő protokollt: Vajon a app lesz szükség értesítést a szerver vagy kliens, amikor adatokat küld vagy fogad?

Ha igen, akkor a TCP protokoll megköveteli a létrehozott kapcsolat az adó és a vevő adatait.

Függetlenül attól, hogy a továbbított adatok meglehetősen nehéz (például képek vagy hangfájlok)? Ha a kapcsolat létrejött, a TCP protokollt fogja tartani annak sértetlenségét garantált és a továbbított adatok. Egy ilyen kapcsolat, mert a szükség nagyobb számítási erőforrások, lehet, hogy lassabb.

Fogják az adatokat továbbítani részletekben vagy egy ülésben? Például, ha létrehoz egy alkalmazás, amely tájékoztatja néhány a számítógépeket, amelyeken a feladat befejeződött, az UDP protokollt alkalmasabb. UDP is bluchshe továbbítására kis mennyiségű adat.

Beállítása a protokollt.

Telepíteni egy protokoll, amely használni fogja az alkalmazás akkor úgy kell megterveznie időt a Properties ablakban, majd a Protokoll tulajdonság és állítsa sckTCPProtocol vagy sckUDPProtocol. Ezt is el lehet végezni algoritmikusan:

Meghatározó a számítógép nevét.

Alapjai TCP kapcsolatok.

Amikor létrehoz egy olyan alkalmazás, a TCP protokollt használja először el kell döntenie, mi lesz az alkalmazás kliens vagy szerver. Ha létrehoz egy alkalmazás szerver, akkor az alkalmazás lesz hallgatni a megadott port. Amikor a kliens alkalmazás iránti kérelmét soedienie, az alkalmazás szerver elfogadja a kérést, és ezáltal megteremtsék soedieneie. Ha a kapcsolat létrejött, a kliens alkalmazás és a kiszolgáló alkalmazás szabadon kommunikálni.

A következő lépések lehetővé teszik, hogy egy elemi alkalmazás szerver:

Ahhoz, hogy hozzon létre egy TCP szerver

  • Hozzon létre egy új szabvány EXE projekt.
  • Cserélje ki a nevét a forma alapértelmezés szerint frmServer.
  • A tulajdoni formák felirat, típus „TCP szerver”
  • A menüben Project \ Components, adjuk hozzá a Microsoft Winsock kontrollálható 6.0
  • Húzza a Winsock komponens ikonra az eszköztáron, és helyezze az űrlapot; megváltoztatni a komponens nevét tcpServer.

Adjunk hozzá két szövegdoboz az űrlap elem. A neve tulajdonát első mezőbe írja txtSendData, második txtOutput.

Adjuk hozzá a következő kódot a következő formában:

A fent leírt tevékenységek által végzett akkor vezet létrehozása egy egyszerű szerver alkalmazások. De ahhoz, hogy teljes mértékben befejezni a feladatot, amire szükség van, hogy több, a kliens alkalmazás.

Ahhoz, hogy hozzon létre egy TCP-kliens alkalmazás

Új formában a projekt, és nevezd meg frmClient. És feliratának módosítása tulajdonát formájában „TCP kliens”.

Drag and drop a Winsock komponens formában és változtassa meg a nevét tulajdonságot „tcpClient”.
  • Adjunk hozzá két szövegdoboz ellenőrzés formájában frmClient.
  • Név az első szettet txtSend, és a második txtOutput.
  • Húzza a Parancsgombot az űrlapon, és állítsa be a nevét tulajdonságot „cmdConnect”.
  • Feliratának módosítása tulajdonsága a gombok a „Connect”.

Adjuk hozzá a következő kódot az űrlapot.

Mentse el a projektet egy külön könyvtárba.

Ha szeretné kipróbálni, milyen az alkalmazás elvégzi a kapcsolat a két számítógép között, akkor hajtsa végre az alábbi műveleteket:
  • Vegyük ki a kódot formák szerver alkalmazás frmClient.Show vonalon.
  • A Project Explorer jobb gombbal az űrlap frmClient.frm és a menüből válassza az Eltávolítás frmClient.frm követően a projekt mentése néven Server1.
  • Nyissa meg az első verzió a projekt és ugyanúgy kell eltávolítani a projekt eleve frmServer.frm.
  • Készítsen exe modul frmClient-A és átírni, hogy egy távoli számítógéphez, és futtassa ott.

Megjegyzés: Ha a távoli számítógépen nincs beállítva a VB kell készíteni, mit kell átírni azt a WINDOWS \ SYSTEM \ mswinsck.ocx és regisztrálja azt a parancsot WINDOWS \ SYSTEM \ regsvr32.exe mswinsck.ocx

Ha az alkalmazás lesz szükség néhány további dll modulokat másolja őket a gépről a távoli.
  • Kocsijába, nyissa ki a Project Server és futtatni.
  • A kliens gépen, kattintson a Csatlakozás gombra, és írja be a szöveget a szövegdoboz txtSendData minden formáját, és biztosítja, hogy ugyanaz a szöveg jelenik meg a mezőben txtOutput az alkalmazás fut egy másik számítógépen.

Feldolgozása több mint egy kapcsolódási kérelem.

Szerver alkalmazás, amelyet azért hoztunk létre először csak feldolgozni egy kérést kapcsolatot. Mindazonáltal lehetséges, hogy kezelni több kapcsolódási kérelmeket, az azonos operációs elem, mint az egyik tömb vezérlőelemek.

Ebben az esetben, adott esetben lezárja a kapcsolatot - egyszerűen hozzon létre egy új változata a vezérlőelem (a tulajdona Index), és indítsa el elfogadás eljárás ebben az új változatban a vezérlőelem.

A következő program szöveg tulajdonsága Index, elhelyezett formájában sckServer Winsock-alkatrész van rendelve egy 0 érték, így a vezérlő elem részévé válik egy sor kontroll elemek. A nyilatkozatokat a részben a lokális változó intMax. Amikor a forma zajlik Load esemény intMax változó kap értéket 0 és az ingatlan LocalPort első tömböt vezérlőelemek hozzárendelt értéke 1001. Csak miután az úgynevezett Hallgassa módszer a vezérlőelem, akkor elkezdi hallgatni egy adott portot. Amikor egy új bejövő kapcsolat kérés van jelölve Index érték, és hogy ez egyenlő 0 (az elem értékét, amely figyeli a port). Így az elem, amely figyel a port, akkor növeli a változó intMax és használja ezt a változót egy új tömb. Ez az új elem kerül feldolgozásához használt csatlakozási kérést.

UDP bázis.

Készítsen használó alkalmazások UDP protokollt könnyebb, mint létre alkalmazásokat a TCP protokollt használják. A tény az, hogy az UDP nem igényel egy már meglévő kapcsolatot, mint egy szükséges feltétele az adatátvitel. Az alkalmazás egy TCP kapcsolat, az egyik Megnyerő elem mindig „hallgatni”, hogy a port, várja meg, amíg egy másik alkalmazás kezdeményezi a kapcsolatot a CONNECT módszerrel.

mert két számítógép azt feltételezzük, hogy a kapcsolat, akkor ez egy vegyületet a peer-to-peer. Annak bizonyítására, ezzel kapcsolatban, akkor hozzon létre egy úgynevezett alkalmazás-csevegés lehetővé teszi két ember kommunikálni valós időben.

Ahhoz, hogy hozzon létre egy UDP kapcsolat:

Hozzon létre egy szabványos EXE projekt.
  • Változás a tulajdonság a nyomtatvány frmPeerA.
  • Feliratának módosítása tulajdonsága a forma „Peer A”
  • Húzza az ikont az eszköztárból Winsock komponens, és helyezze az űrlapot. Rendeljen tulajdonság értéke udpPeerA.
  • Változás a jegyzőkönyv ingatlan UDPProtocol.
  • Adjunk hozzá két szövegdobozok formájában.

A neve az első az, hogy egy második txtSend txtOutput. Add kódot az alábbi űrlapot.

Ahhoz, hogy hozzon létre egy második UDP alkalmazás.

  • Hozzá egy formanyomtatványt a projekthez.
  • Nevének módosítása az űrlap frmPeerB.
  • Feliratának módosítása tulajdonsága a forma „Peer B”.
  • Drag and drop a ikont Winsock komponens formájában.
  • Változtassa meg a nevét a Winsock udpPeerB.
  • Változás jegyzőkönyv ingatlan UDPProtocol.
  • Adjunk hozzá két szövegdobozok formájában.

Első neve legyen txtSend, második txtOutput.

Adjuk hozzá a következő kódot az űrlapot.

Ha ki szeretné próbálni az alkalmazás fut a projekt, és írja be a szövegmezőbe txtSend minden formában bármilyen szöveget.

Ez a szöveg jelenik meg a szövegmezők txtOutput más formában.

A módszer Bind.

Amint az a fenti példában, akkor hívja a módszer Bind, létrehozásakor UDP alkalmazás. Bind eljárás lefoglal egy helyi portot használatra elem Winsock. Például, ha megkötik az elem Megnyerő a 1001-es porton, akkor nincs más alkalmazás nem használja ezt a portot, hogy hallgatni. Ez akkor lehet hasznos, ha azt szeretné, hogy megakadályozza bármely más alkalmazás használja ezt a portot.

Bind eljárás egy másik opcionális argumentum.

Ha a számítógép egynél több hálózati adapter, localip érv lehetővé teszi, hogy pontosan az adaptert kell használni. Ha nem adja meg ezt az érvelést, a Winsock komponens fogja használni a hálózati adaptert, hogy az első a listán, ami látható a Start \ Beállítások \ Control Panel \ System \ hálózati adapter.

Ha az UDP protokollt, akkor lehet módosítani a tulajdonságait és REMOTEHOST RemotePort miközben a kötődés ugyanazon LocalPort. Ha a TCP protokollt használják, előtt és tulajdonságainak módosítása REMOTEHOST RemotePort, először meg kell zárni a kapcsolatot.