Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez a cikk a Windows Sockets természetét és célját ismerteti. A cikk a következőket is tartalmazza:
A Windows Sockets specifikációja binárisan kompatibilis hálózati programozási felületet határoz meg a Microsoft Windowshoz. A Windows-szoftvercsatornák a Berkeley Software Distribution (BSD, release 4.3) UNIX-szoftvercsatornáinak megvalósításán alapulnak a Berkeley-i Kaliforniai Egyetemtől. A specifikáció tartalmazza mind a BSD-stílusú socket rutinokat, mind a Windowsra jellemző kiterjesztéseket. A Windows Sockets lehetővé teszi az alkalmazás számára, hogy a Windows Sockets API-nak megfelelő hálózaton keresztül kommunikáljon. Win32 rendszeren a Windows-szoftvercsatornák biztosítják a szálbiztonságot.
Számos hálózati szoftvergyártó támogatja a Windows-szoftvercsatornákat olyan hálózati protokollok alatt, mint a Transmission Control Protocol/Internet Protocol (TCP/IP), a Xerox Network System (XNS), a Digital Equipment Corporation DECNet protokollja, a Novell Corporation internetes csomagcseréje/szekvenciális csomagolt exchangeje (IPX/SPX) és mások. Bár a jelenlegi Windows Sockets-specifikáció határozza meg a TCP/IP szoftvercsatornák absztrakcióját, minden hálózati protokoll megfelelhet a Windows Socketsnek a Windows Socketst implementáló dinamikus csatolású kódtár (DLL) saját verziójának megadásával. A Windows-szoftvercsatornákkal írt kereskedelmi alkalmazások közé tartoznak például az X Windows-kiszolgálók, a terminálemulátorok és az elektronikus levelezőrendszerek.
Megjegyzés:
A Windows Sockets célja, hogy elrejtse a mögöttes hálózat bonyolultságát, így Önnek nem kell ismernie a hálózatot, és az alkalmazás bármely olyan hálózaton fusson, amely támogatja a socketeket. Ezért ez a dokumentáció nem tárgyalja a hálózati protokollok részleteit.
A Microsoft Foundation Osztálytár (MFC) két osztály biztosításával támogatja a Windows Sockets API-val való programozást. Ezen osztályok CSocketegyike magas szintű absztrakciót biztosít a hálózati kommunikáció programozásának egyszerűsítése érdekében.
A Windows Sockets specifikációja, a Windows Sockets: Open Interface for Network Computing Under Microsoft Windows, amely jelenleg 1.1-es verziójú, nyílt hálózati szabványként lett kifejlesztve a TCP/IP-közösségben lévő egyének és vállalatok nagy csoportja által, és szabadon használható. A soket programozási modell jelenleg egy "kommunikációs tartományt" támogat az Internetes Protokollkészlet használatával. A specifikáció a Windows SDK-ban érhető el.
Jótanács
Mivel a socketek az Internet Protocol Suite-ot használják, ezek az előnyben részesített útvonalak az internetes kommunikáció számára az "információs autópályán".
Szoftvercsatorna definíciója
A socket egy kommunikációs végpont – olyan objektum, amelyen keresztül egy Windows Sockets-alkalmazás adatcsomagokat küld vagy fogad egy hálózaton keresztül. A socketek típusának egy futó folyamathoz társítva van, és esetleg neve is van. Jelenleg a socketek általában csak más socketekkel cserélnek adatot ugyanabban a "kommunikációs környezetben", amely az internetes protokollkészletet használja.
Mindkét típusú foglalat kétirányú; ezek olyan adatfolyamok, amelyek egyszerre mindkét irányban kommunikálhatók (full-duplex).
Két aljzattípus érhető el:
Stream-szoftvercsatornák
A streamcsatornák rekordhatárok nélküli adatfolyamot biztosítanak: bájtos adatfolyamot. A streamek garantáltan kézbesítve lesznek, és megfelelően vannak sorrendben és nem duplikálva.
Datagram-csatlakozók
A datagram socketek olyan rekordorientált adatfolyamot támogatnak, amelynél nem garantált a kézbesítés, és amely nem feltétlenül a küldési sorrendben érkezik vagy nem lesz duplikálva.
A "szekvenciált" azt jelenti, hogy a csomagok kézbesítése az elküldött sorrendben történik. A "nem duplikált" azt jelenti, hogy egy adott csomagot csak egyszer kap meg.
Megjegyzés:
Egyes hálózati protokollok, például az XNS esetén a streamek rekordorientáltak lehetnek, és nem bájtos streamekként, hanem rekordstreamekként. A gyakoribb TCP/IP protokoll alatt azonban a streamek bájtstreamek. A Windows Sockets az alapul szolgáló protokolltól független absztrakciós szintet biztosít.
Az ilyen típusokról és a különböző helyzetekben használandó csatlakozókról további információ a következő címeken található: Windows Sockets: Stream Sockets és Windows Sockets: Datagram Sockets.
A SOCKET-adattípus
Minden MFC-aljzat objektum egy Windows Sockets objektum fogantyúját ágyazza be. Ennek a leírónak az adattípusa a SOCKET. A SOCKET fogantyúja hasonló az ablak fogantyújához. Az MFC socket osztályai műveleteket végeznek a beágyazott kezelőn.
A SOCKET adattípust a Windows SDK részletesen ismerteti. Lásd: "Szoftvercsatorna-adattípus és hibaértékek" a Windows-szoftvercsatornák alatt.
Foglalatok használata
A foglalatok legalább három kommunikációs környezetben rendkívül hasznosak:
Ügyfél-/kiszolgálómodellek.
Társközi forgatókönyvek, például üzenetkezelési alkalmazások.
Távoli eljáráshívások (RPC) kezdeményezése úgy, hogy a fogadó alkalmazás függvényhívásként értelmez egy üzenetet.
Jótanács
Az MFC szokettípusa ideálisan akkor használható, ha Ön írja a kommunikáció mindkét oldalát: mindkét oldalon MFC-t használva. A témakörrel kapcsolatos további információkért, beleértve az eset kezelését a nem MFC-alkalmazásokkal folytatott kommunikáció során, olvassa el a Windows Sockets: Byte Ordering című témakört.
További információ: Windows Sockets Specification: ntohs, ntohl, htons, htonl. Tekintse meg a következő témaköröket is:
Windows-szoftvercsatornák: Szoftvercsatornák használata archívumokkal
Windows-szoftvercsatornák: A CAsyncSocket osztály használata