Udostępnij za pośrednictwem


Windows Sockets: podstawy

W tym artykule wyjaśniono, charakter i cel Windows Sockets.Artykuł również:

  • Definiuje pojęcie "gniazdo".

  • Opisuje typ danych uchwyt GNIAZDA.

  • Zawiera opis zastosowań dla gniazd.

Specyfikacja usługi Windows Sockets określa interfejs programowania zgodnych binarnie sieci systemu Microsoft Windows.Windows Sockets opierają się na implementację sockets systemu UNIX w Berkeley Software Distribution (BSD, zwolnij 4.3) z University of California w Berkeley.Specyfikacja zawiera zarówno stylu BSD gniazdo procedury, jak i rozszerzenia specyficzne dla systemu Windows.Przy użyciu usługi Windows Sockets zezwala aplikacjom komunikować się przez każdą sieć, która odpowiada interfejsu API Windows Sockets.Na Win32 Windows Sockets przewidzieć bezpieczeństwo wątków.

Wielu dostawców oprogramowania sieci obsługują protokół Windows Sockets pod tym transmisji Control Protocol/Internet Protocol (TCP/IP), Xerox Network System (XNS), protokół DECNet firmy Digital Equipment Corporation, firma Novell Internet Packet Exchange/Sequenced pakowane Exchange (IPX/SPX) i innych protokołów sieciowych.Chociaż niniejszej specyfikacji Windows Sockets definiuje abstrakcji sockets dla protokołu TCP/IP, każdy protokół sieciowy może spełnić Windows Sockets poprzez dostarczanie własną wersję biblioteki dołączanej (dynamicznie DLL), która implementuje usługi Windows Sockets.Przykładami aplikacji komercyjnych napisane za pomocą usługi Windows Sockets serwerów X Windows, emulatory terminali i systemy poczty elektronicznej.

[!UWAGA]

Celem usługi Windows Sockets jest streszczenie podstawowej sieci tak, że nie musisz posiadać wiedzę na temat tej sieci i dlatego aplikacja może być uruchomiony w każdej sieci, która obsługuje gniazd.W związku z tym tej dokumentacji nie omówiono szczegóły dotyczące protokołów sieciowych.

Microsoft Foundation Class biblioteki (MFC) obsługuje programowania przy użyciu interfejsu API Windows Sockets, dostarczając dwie klasy.Jeden z tych klas, CSocket, zapewnia wysoki poziom abstrakcji uproszczenie Twoje programowanie łączności sieciowej.

Specyfikacja usługi Windows Sockets, Windows Sockets: Otwórz interfejs dla sieci komputerowych w obszarze systemu Microsoft Windows, obecnie w wersji 1.1, został opracowany jako otwarty standard sieci przez dużą grupę osób i przedsiębiorstw we Wspólnocie TCP/IP i jest dostępne do użytku.Gniazda obecnie programowania modelu obsługuje jeden "Komunikacja domeny", za pomocą zestawu protokołów internetowych.Specyfikacja jest dostępna w Windows SDK.

PoradaPorada

Ponieważ sockets korzystają z zestawem protokołów internetowych, są one preferowaną trasę dla aplikacji, które obsługują komunikację internetową na "autostrada informacji."

Definicja gniazda

Gniazdo jest punkt końcowy komunikacji — obiekt, za pomocą którego aplikacja Windows Sockets wysyła lub odbiera pakiety danych przez sieć.Gniazdo ma typ i wiąże się z uruchomiony proces i może mieć nazwę.Obecnie sockets ogólnie wymiany danych z innego gniazda w tej samej "Komunikacja domenie," który używa zestawu protokołów internetowych.

Oba rodzaje gniazd są dwukierunkowe; są one przepływów danych, które może być przekazywana jednocześnie w obu kierunkach (w trybie full-duplex).

Dostępne są dwa rodzaje gniazd:

  • Gniazda strumienia

    Stream sockets przewidują przepływ danych bez granic rekordów: strumień bajtów.Strumienie są gwarantowane do dostarczenia i poprawnie ustawione w kolejności i duplikatów.

  • Datagram gniazd

    Przepływ danych obsługi zorientowane na rekord sockets datagram, który nie jest zagwarantowane mają zostać dostarczone i nie może zostać zsekwencjonowana jako wysyłane lub duplikatów.

"Kolejne" oznacza, że pakiety są dostarczane w kolejności wysłane. "Unduplicated" oznacza się dany pakiet tylko raz.

[!UWAGA]

Na niektórych protokołów sieciowych, takich jak XNS strumienie można rekordu zorientowane na strumienie rekordów, a nie strumieni bajtów.Zgodnie z protokołem TCP/IP częściej strumienie są jednak strumieni bajtów.Windows Sockets zapewnia poziom abstrakcji niezależnie od podstawowym protokołem.

Aby uzyskać informacje o tych typach i jakiego rodzaju gniazdo do wykorzystania w jakich sytuacjach, zobacz Windows Sockets: Stream Sockets i Windows Sockets: Datagram Sockets.

GNIAZDO typu danych

Każdy obiekt socket MFC hermetyzuje dojście do obiektu Windows Sockets.Typ danych to dojście jest GNIAZDO.A GNIAZDO dojście jest analogiczne do HWND dla okna.Klasy MFC gniazda zapewniają operacje na uchwycie zhermetyzowanego.

GNIAZDO typ danych jest szczegółowo opisane w Windows SDK.Zobacz "Gniazdo typu danych i wartości błędów" w obszarze usługi Windows Sockets.

Używa dla gniazd

Gniazda są bardzo przydatne w komunikacji przynajmniej trzy konteksty:

  • Modele klient/serwer.

  • Scenariusze typu peer-to-peer, na przykład aplikacji do obsługi wiadomości.

  • Aplikacja odbierająca interpretować wiadomość jako wywołanie funkcji, co zdalnego wywołania procedury (RPC).

PoradaPorada

Jest idealnym rozwiązaniem w przypadku przy użyciu gniazd MFC pisząc oba końce komunikatu: przy użyciu biblioteki MFC na obu końcach.Aby uzyskać więcej informacji na ten temat, w tym sposobów zarządzania w przypadku, gdy rozmawiasz z aplikacji MFC nie zobacz Windows Sockets: bajtów to.

Aby uzyskać więcej informacji, zobacz Specyfikacja systemu Windows Sockets: ntohs, ntohl, htons, htonl.Ponadto zobacz następujące tematy:

Zobacz też

Koncepcje

Windows Sockets w MFC