wirtualne int Odbierania ( void * lpBuf, int nBufLen, int nFlags = 0 );
Wartość zwracany
Jeśli błąd nie wystąpi, odbierania zwraca liczbę bajtów odebranych. Jeśli połączenie zostało zamknięte, zwraca 0. W przeciwnym wypadku zwracana jest wartość SOCKET_ERROR , a kod błędu mogą być pobierane przez wywołanie GetLastError. Następujące błędy stosuje się do tej funkcji członek:
Parametry
lpBuf
Bufor danych przychodzących.
nBufLen
Długość lpBuf w bajtach.
nFlags
Określa sposób, w której połączenie jest nawiązywane. Semantyka tej funkcji są określane przez opcje gniazda i parametr nFlags . Ten ostatni jest wykonane przez łączenie dowolnego z następujących wartości z operatorem C++ lub:
Uwagi
Wywołanie tej funkcji Państwa do odbierania danych od gniazda. Ta funkcja służy do połączonego strumienia lub datagram gniazd i służy do czytania przychodzących danych.
Dla gniazd typu SOCK_STREAMjak najwięcej informacji jest obecnie dostępny do rozmiaru bufor jest zwracany. Jeśli gniazdo skonfigurowano do odbioru śródwierszowej poza pasmem danych (opcja gniazdo SO_OOBINLINE) i poza pasmem danych jest nieprzeczytane, tylko poza pasmem dane będą zwracane. Aplikacja może używać opcjiSIOCATMARK IOCtllub OnOutOfBandData ustalenie, czy wszystkie dane więcej poza pasmem pozostaje do odczytu .
Dla datagramu gniazd dane ekstrahuje się z pierwszym datagram został umieszczony w kolejce do rozmiaru bufor. Jeśli datagram jest większe niż bufor, bufor jest wypełniona w pierwszej części datagram, nadmiar dane zostaną utracone, a Odbierz zwraca wartość SOCKET_ERROR z kodem błędu, ustawiony na WSAEMSGSIZE. Jeśli nie dane przychodzące jest dostępna w gniazda, zwracana jest wartość o SOCKET_ERROR z kodem błędu, ustawiony na WSAEWOULDBLOCK. Funkcja wywołania zwrotnego OnReceive może być używana do ustalenia, kiedy nadejdzie więcej danych.
Gniazdo jest typu SOCK_STREAM i strona zdalna została łagodnego zamknięcia połączenia, odbierania zakończy się bezpośrednio z 0 bajtów odebranych. Jeśli połączenia zostały zresetowane, odbierania nie powiedzie się z powodu błędu WSAECONNRESET.
Omówienie CAsyncSocket |nbsp; Klasa członków | Wykres hierarchii
Zobacz też CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send