Udostępnij za pośrednictwem


Windows Sockets: gniazda strumieni

W tym artykule opisano gniazda strumienia, jedną z dwóch dostępnych typów Windows Socket. (Innego typu jest gniazdo datagramu.)

Stream sockets przewidują przepływ danych bez granic rekordów: strumień bajtów, które mogą być dwukierunkowy (aplikacja jest pełny dupleks: to może nadawać i odbierać za pośrednictwem gniazda).Strumienie mogą być powoływane do dostarczania danych sukcesywnych, unduplicated. ("Kolejne" oznacza, że pakiety są dostarczane w kolejności wysłane. "Unduplicated" oznacza się dany pakiet tylko raz). Gwarantowana komunikatach strumienia i strumieni dobrze nadają się do obsługi dużych ilości danych.

Warstwa transportu sieciowego może rozbić lub grupowania danych na pakiety odpowiednie rozmiary.CSocket Klasa będzie obsługiwać pakowania i rozpakowywania dla Ciebie.

Strumienie są oparte na jawne połączeń: gniazdo A żądania połączenia gniazda B; Gniazdo B akceptuje lub odrzuca żądanie połączenia.

Telefon zapewnia dobrą analogią dla strumienia.W normalnych warunkach Strona otrzymująca słyszy to, co mówisz w kolejności powiedzieć, bez powielania lub straty.Stream sockets są odpowiednie, na przykład w implementacji takich jak protokół FTP (File Transfer), który ułatwia przekazującej ASCII lub binarne pliki dowolnego rozmiaru.

Gniazda strumienia są zamiast datagram sockets, gdy dane musi zostać zagwarantowana przybyć i rozmiar danych jest duży.Aby uzyskać więcej informacji na temat gniazda strumienia Zobacz Specyfikacja usługi Windows Sockets.Specyfikacja jest dostępna w Windows SDK.

Korzystanie z gniazda strumienia może być nadrzędne w stosunku do aplikacje zaprojektowane w celu wykorzystania gniazdo datagramu do emisji wszystkich odbierający gniazdami w sieci, ponieważ

  • Model emisji podlega problemy z siecią powodzi (lub "Burza").

  • Późniejsze modelu klient serwer jest bardziej efektywne.

  • Model strumień dostaw niezawodny transfer danych, gdzie model datagramu nie obsługuje.

  • Ostatecznego modelu wykorzystuje możliwość komunikowania się między Unicode i ANSI gniazdo aplikacje tej klasy CArchive nadaje się do klasy CSocketFile, CSocket.

    [!UWAGA]

    Korzystając z klasy CSocket, należy użyć strumienia.Podanie MFC nie powiedzie się, jeśli określony typ gniazda jako SOCK_DGRAM.

Zobacz też

Koncepcje

Windows Sockets w MFC

Windows Sockets: podstawy