Udostępnij za pośrednictwem


Windows Sockets: Gniazda powiadomień

W tym artykule opisano funkcje powiadomień z klasy socket.Te funkcje składowe są funkcji wywołania zwrotnego, które w ramach wzywa do powiadamiania ważnych zdarzeń obiektu gniazda.Funkcje powiadomień są:

  • OnReceive: powiadamia tego gniazda, istnieją dane w buforze, aby pobrać wywołując odbioru.

  • OnSend: powiadamia tego gniazda, że może teraz wysłać dane przez wywołanie wysłać.

  • OnAccept: powiadamia tego nasłuchujących gniazda, który może akceptować żądań połączeń oczekujących, wywołując Zaakceptuj.

  • OnConnect: powiadamia o tym nawiązywania połączenia z gniazdem, po jego próba połączenia: być może pomyślnie lub być może w błąd.

  • OnClose: powiadamia tego gniazda, który zamknął gniazdo jest połączony.

    [!UWAGA]

    Funkcja dodatkowe zgłoszenie jest OnOutOfBandData.To powiadomienie nakazuje gniazda otrzymującego, że wysyłający gniazdo ma "poza pasmem" dane do wysłania.-Band danych jest logicznie niezależnych kanałem skojarzonych z każdej pary połączonych strumieni gniazd.Kanał-band jest zazwyczaj używany do wysyłania danych "pilne".MFC obsługuje dane-band.Zaawansowani użytkownicy, Praca z klasy CAsyncSocket może zajść potrzeba użycia-band kanału, ale użytkownicy klasy CSocket są odradzane korzystanie z niego.Jest prostszy sposób utworzyć drugi gniazda do przekazywania takich danych.Aby uzyskać więcej informacji na temat danych-band zobacz specyfikację Windows Sockets, dostępne w Windows SDK.

Jeżeli pochodzi od klasy CAsyncSocket, należy zastąpić funkcji powiadomień dla tych sieciowych zdarzenia odsetek do aplikacji.Jeśli klasa jest pochodzić od klasy CSocket, jest wybór, czy należy zastępować funkcji powiadomień zainteresowania.Można również użyć CSocket , w którym to przypadku powiadomienie funkcje domyślnie nic się nie dzieje.

Te funkcje są funkcje wykonać wywołania zwrotnego.CAsyncSocketi CSocket konwersji wiadomości powiadomień, ale musi implementować jak powiadomienie funkcjonuje odpowiadanie, jeśli chcesz ich użyć.Funkcje powiadomień są nazywane w chwili gniazda sieci jest powiadamiany o zdarzeniu zainteresowania, takich jak obecność danych do odczytu.

MFC wywołuje funkcje powiadomień i umożliwiają dostosowywanie zachowania socket's w chwili o niej powiadomione.Na przykład, może wywołać Odbierz z sieci OnReceive funkcja powiadamiania, oznacza to, na czym powiadomiony, że nie ma danych do odczytu, należy wywołać odbioru ją przeczytać.Podejście takie nie jest konieczne, ale jest nieprawidłowy scenariusz.Jako alternatywa, można użyć funkcji powiadomień, aby śledzić postęp, drukować śledzenia wiadomości i tak dalej.

Można korzystać z tych powiadomień poprzez zastępowanie funkcji powiadomień w klasie pochodnej gniazda i implementację.

Podczas operacji takich jak odbieranie lub wysyłanie danych CSocket obiekt staje się synchronicznych.W stanie synchroniczne powiadomienia skierowane do innego gniazda są kolejkowane podczas bieżącego gniazda czeka na powiadomienie, które chce.(Na przykład podczas odbioru rozmowy, gniazdo chce powiadomień do odczytu.) Po gniazdo zakończeniu jego operacji synchronicznych i staje się ponownie asynchronicznych, inne sockets można rozpocząć odbierania powiadomień w kolejce.

[!UWAGA]

W CSocket, OnConnect nigdy wywoływana jest funkcja powiadamiania.Dla połączeń, wywołanie Połącz, która zwróci po zakończeniu połączenia (pomyślnie lub błąd).Sposób obsługi połączeń powiadomienia to szczegółowa implementacja MFC.

Szczegółowe informacje na temat każdej funkcji powiadomień, zobacz opis funkcji w klasie CAsyncSocket w Odniesienia MFC.Kod źródłowy oraz informacji o próbek MFC, zobacz Próbek MFC.

Aby uzyskać więcej informacji zobacz:

Zobacz też

Koncepcje

Windows Sockets w MFC