Windows Sockets: Socket-Benachrichtigungen
In diesem Artikel werden die Klassen für den Socket in Benachrichtigungsfunktionen.Diese Memberfunktionen sind Rückruffunktionen, die vom Framework aufgerufen wird, um ein Socket Objekt wichtige Ereignisse zu benachrichtigen.Die Benachrichtigungsfunktionen sind:
OnReceive: Benachrichtigt den Socket, dass es Daten im Puffer vorhanden sind, damit er abgerufen durch Aufrufen von Empfangen von.
OnSend: Benachrichtigt den Socket, dass er Daten durch Aufrufen von Send nun übermitteln kann.
OnAccept: Benachrichtigt den überwachenden Socket, dass während er Verbindungsanforderungen durch Aufrufen von Übernehmen Sie annehmen kann.
OnConnect: Benachrichtigt die Verbindung sein, dass Steckverbindung haben abgeschlossen wurde: möglicherweise erfolgreich oder mit einem Fehler.
OnClose: Benachrichtigt den Socket, dass der Socket, den er verbunden ist, geschlossen hat.
Hinweis Eine zusätzliche Benachrichtigungsfunktion lautet OnOutOfBandData.Diese Benachrichtigung teilt dem empfangenden Socket an, dass der sendende Socket "Out-of-Band" hat zu sendenden Daten.Out-of-Band-Daten sind mit jedem Paar von verbundenen Streamsockets ein logisch unabhängiges kanalgebundenes.Der Out-of-Band Channel wird normalerweise verwendet, um "" dringende Daten zu senden.MFC unterstützt Out-of-Band-Daten.In fortgeschrittenen Benutzern, die mit CAsyncSocket-Klasse funktioniert, müssen den Out-of-Band Kanal verwenden, aber Benutzer der Klasse CSocket werden von der Anwendung er abgeraten.Die einfachere Möglichkeit besteht darin, einen zweiten Socket zum Übergeben von Daten zu erstellen.Weitere Informationen über Out-of-Band-Daten finden Sie auf der Windows Socket-Spezifikation, die in Windows SDK verfügbar ist.
Wenn Sie von der Klasse abgeleitet werden, müssen die CAsyncSocket Benachrichtigungsfunktionen für diese Netzwerk relevante Ereignisse in der Anwendung überschreiben.Wenn Sie eine Klasse von der Klasse abgeleitet werden, ist es CSocket die Auswahl, ob die betreffende Benachrichtigungsfunktionen überschreibt.Sie können auch mithilfe CSocket selbst, in diesem Fall die Benachrichtigungsfunktionen zu dem diese Aktion übergeben.
Diese Funktionen sind nicht schreibgeschützte Rückruffunktionen.CAsyncSocket Meldungen zu konvertieren CSocket und Benachrichtigungen. Sie müssen jedoch implementieren, z. B. die Benachrichtigungsfunktionen reagieren, wenn Sie sie verwenden möchten.Die Benachrichtigungsfunktionen werden, wenn das betreffende Ereignis von einem Socket benachrichtigt wird, z. B. des Vorhandenseins der zu lesenden Daten bezeichnet.
MFC ruft die Benachrichtigungsfunktionen auf, um das Verhalten des Sockets anpassen können, wenn er benachrichtigt wird.Zum Beispiel könnten Sie Receive von der OnReceive Benachrichtigungsfunktion an, d. h. auf benachrichtigt werden, dass es gibt die Daten zu lesen, rufen Sie Receive an, um ihn zu lesen.Dieser Ansatz ist nicht erforderlich, aber es ist ein gültiges Szenario.Alternativ haben Sie möglicherweise die Benachrichtigungsfunktion den Status verfolgen, TRACE Nachrichten Druck usw.
Sie können diese Benachrichtigungen profitieren, indem Sie die Benachrichtigungsfunktionen in einer abgeleiteten Klasse überschreiben und Socket eine Implementierung bereitstellen.
Während eines Vorgangs für das Empfangen und Senden von Daten, wird ein CSocket-Objekt synchron.Während der synchronen Zustands werden alle Benachrichtigungen, die für andere Sockets impliziert werden in eine Warteschlange eingereiht, während der aktuelle Socket wartet auf die Benachrichtigung, die er möchte.(Zum Beispiel Receive während eines Aufrufs wünscht der Socket eine Benachrichtigung lesen.) Sobald der Socket nach Abschluss des Gleichlaufbetrieb erneut und asynchron ist, können andere Sockets beginnen, die in der Warteschlange befinden. Empfangen von Benachrichtigungen
Hinweis |
---|
In CSocket wird die OnConnect Benachrichtigungsfunktion nie aufgerufen.Für Verbindungen rufen Sie Verbinden, die zurückgegeben wird, wenn die Verbindung entweder erfolgreich abgeschlossen wurde (oder versehentlich).Wie Benachrichtigungen Verbindungen bearbeitet werden, ist ein MFC-Implementierungsdetail. |
Ausführliche Informationen zu den einzelnen Benachrichtigungsfunktion finden Sie unter Feature CAsyncSocket-Klasse in der MFC-Referenz.Weitere Informationen zu Quellcode und MFC-Beispiele finden Sie unter MFC-Beispiele.
Weitere Informationen finden Sie unter: