Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs meddelandefunktionerna i socketklasserna. Dessa medlemsfunktioner är återanropsfunktioner som ramverket anropar för att meddela socketobjektet om viktiga händelser. Meddelandefunktionerna är:
OnReceive: Meddelar den här socketen att det finns data i bufferten som den kan hämta genom att anropa Ta emot.
OnSend: Meddelar den här socketen att den nu kan skicka data genom att anropa Skicka.
OnAccept: Meddelar den här lyssnande socketen att den kan acceptera väntande anslutningsbegäranden genom att anropa Acceptera.
OnConnect: Meddelar den här anslutande socketen att dess anslutningsförsök har slutförts: antingen lyckades eller misslyckades.
OnClose: Meddelar denna socket att den socket som den är ansluten till har stängts.
Anmärkning
Ytterligare en meddelandefunktion är OnOutOfBandData. Det här meddelandet meddelar den mottagande socketen att den sändande socketen har "out-of-band"-data att skicka. Out-of-band-data är en logiskt sett oberoende kanal som är kopplad till varje par av anslutna strömsocklar. Out-of-band-kanalen används vanligtvis för att skicka "brådskande" data. MFC stöder out-of-band-data. Avancerade användare som arbetar med klassen CAsyncSocket kan behöva använda out of band-kanalen, men användare av klassen CSocket avråds från att använda den. Det enklare sättet är att skapa en andra socket för att skicka sådana data. Mer information om out-of-band-data finns i Windows Sockets-specifikationen, som är tillgänglig i Windows SDK.
Om du härleder från klassen CAsyncSocketmåste du åsidosätta meddelandefunktionerna för de nätverkshändelser som är intressanta för ditt program. Om du härleder en klass från klassen CSocketär det ditt val om du vill åsidosätta aviseringsfunktionerna av intresse. Du kan också använda CSocket själv, i vilket fall meddelandefunktionerna inte gör någonting.
Dessa funktioner är överskådliga återanropsfunktioner.
CAsyncSocket och CSocket konverterar meddelanden till notifikationer, men du måste implementera hur notifikationsfunktionerna svarar om du vill använda dem. Notifikationsfunktionerna aktiveras när din socket meddelas om en relevant händelse, till exempel om det finns data att läsa.
MFC anropar meddelandefunktionerna så att du kan anpassa socketens beteende när det meddelas. Du kan till exempel anropa Receive från din OnReceive meddelandefunktion, det vill säga när du får ett meddelande om att det finns data att läsa anropar Receive du för att läsa den. Den här metoden är inte nödvändig, men det är ett giltigt scenario. Alternativt kan du använda meddelandefunktionen för att spåra förlopp, skriva ut TRACE-meddelanden och så vidare.
Du kan dra nytta av dessa meddelanden genom att åsidosätta meddelandefunktionerna i en härledd socketklass och tillhandahålla en implementering.
Under en åtgärd som att ta emot eller skicka data blir ett CSocket objekt synkront. Under synkront tillstånd placeras alla meddelanden som är avsedda för andra socketar i kö medan den aktuella socketen väntar på det meddelande som den vill ha. (Under ett Receive anrop vill till exempel socketen att ett meddelande ska läsas.) När socketen har slutfört sin synkrona åtgärd och blir asynkron igen kan andra socketar börja ta emot de köade meddelandena.
Anmärkning
I CSocketanropas OnConnect aldrig meddelandefunktionen. För anslutningar kallar du på Connect, som kommer att återvända när anslutningen är slutförd (antingen framgångsrikt eller med fel). Hur anslutningsmeddelanden hanteras är en MFC-implementeringsinformation.
Mer information om varje meddelandefunktion finns i funktionen under klass CAsyncSocket i MFC-referensen. Källkod och information om MFC-exempel finns i MFC-exempel.
Mer information finns i: