Windows Sockets: powiadomienia dotyczące gniazd
W tym artykule opisano funkcje powiadomień z klasy socket.Te funkcje składowe są funkcje wywołania zwrotnego, które wywołuje ramach powiadomić swoje gniazda obiektu ważnych wydarzeń.Funkcje powiadomień są:
OnReceive: powiadamia tego gniazda, to dane w buforze na to, aby pobrać wywołując Odbierz.
OnSend: powiadamia tego gniazda, że może teraz wysłać dane przez wywołanie wysłać.
OnAccept: powiadamia tego gniazda słuchania, którą może zaakceptować oczekujące żądania połączenia przez wywołanie Zaakceptuj.
OnConnect: powiadamia o tym nawiązywania połączenia z gniazdem zakończenia jego próba połączenia: być może pomyślnie lub być może omyłkowo.
Właściwość OnClose: powiadamia tego zamknął gniazdo jest podłączony do gniazda.
[!UWAGA]
Funkcja dodatkowe powiadomienia jest OnOutOfBandData.To powiadomienie mówi otrzymujące gniazda, że wysyłający gniazdo ma "out-of-band" dane do wysłania.Dane z pozapasmowego jest logicznie niezależnych kanał skojarzone z każdej pary połączonych strumieni gniazd.Kanał out-of-band jest zazwyczaj używany do wysyłania danych "pilne".MFC obsługuje dane z pozapasmowego.Zaawansowani użytkownicy Praca z klasy CAsyncSocket być może należy użyć kanału z pozapasmowego, ale użytkownicy klasy CSocketFile, CSocket są odradzane korzystanie z niego.Aby utworzyć drugi gniazda dla przekazywania takich danych jest łatwiejszy sposób.Aby uzyskać więcej informacji o danych out-of-band, zobacz specyfikację Windows Sockets, dostępna w Windows SDK.
Jeżeli pochodzi od klasy CAsyncSocket, należy zastąpić funkcji powiadomień dla tych sieciowych zdarzenia odsetki do aplikacji.Jeśli klasa jest pochodzi od klasy CSocket, to Twój wybór, czy zastępować funkcji powiadomień będących przedmiotem zainteresowania.Można również użyć CSocket , w którym to przypadku powiadomienie funkcje domyślne, aby nic nie robi.
Funkcje te są funkcjami NotOverridable wywołania zwrotnego.CAsyncSocketi CSocket konwersji wiadomości powiadomień, ale musi implementować jak powiadomienia funkcjonuje odpowiedź, aby z nich korzystać.Funkcje powiadomień są wywoływane w momencie gniazda jest powiadamiany o zdarzeniu, będących przedmiotem zainteresowania, takie jak obecność danych do odczytu.
MFC wywołania funkcji powiadomień do umożliwiają dostosowanie zachowania socket's w czasie zostanie o nich powiadomiony.Na przykład, może wywołać Odbierz z sieci OnReceive funkcja powiadamiania, to znaczy, temat istoty powiadomiony, że ma danych do odczytu, wywołania Odbierz ją przeczytać.Podejście takie nie jest konieczne, ale jest to nieprawidłowy scenariusz.Alternatywnie, można użyć funkcji powiadomień w celu śledzenia postępu, drukować śledzenia wiadomości i tak dalej.
Mogą Państwo skorzystać z tych powiadomień przez zastąpienie funkcji powiadomień w klasie pochodnej gniazda i zapewniając implementację.
Podczas takiej operacji jak odbieranie lub wysyłanie danych CSocket obiekt staje się synchronicznych.Podczas synchronicznego stanu powiadomienia przeznaczone dla innych gniazd są umieszczane w kolejce podczas bieżącego gniazda czeka na powiadomienie, które chce. (Na przykład podczas Odbierz rozmowy, gniazdo chce powiadomienie do odczytu.) Po gniazdo kończy jego operacji synchronicznych i staje się ponownie asynchronicznych, pozostałe gniazda można rozpocząć odbieranie powiadomień kolejce.
[!UWAGA]
W CSocket, OnConnect nigdy nie jest wywoływana funkcja powiadamiania.W przypadku połączeń zadzwonić Połącz, która zwróci, gdy połączenie jest zakończona (powodzeniem lub w błąd).Sposób obsługi notyfikacja połączenia to szczegółowa implementacja MFC.
Szczegółowe informacje na temat każdej funkcji powiadomień, zobacz opis funkcji poniżej klasy CAsyncSocket w Odwołanie MFC.Kod źródłowy i informacji dotyczących próbek MFC, zobacz Próbek MFC.
Aby uzyskać więcej informacji, zobacz: