Udostępnij za pośrednictwem


CAsyncSocket::Accept

Wywołanie tej funkcji Członkowskich do akceptowania połączeń na gnieździe.

virtual BOOL Accept( 
   CAsyncSocket& rConnectedSocket, 
   SOCKADDR* lpSockAddr = NULL, 
   int* lpSockAddrLen = NULL  
);

Parametry

  • rConnectedSocket
    Odniesieniem identyfikującym nowe gniazdo, który jest dostępny dla połączenia.

  • lpSockAddr
    Wskaźnik do SOCKADDR strukturę, która odbierze adres łączenie socket znany w sieci.Dokładny format lpSockAddr argument określana jest rodzina adresów ustanowione podczas tworzenia gniazda.Jeśli lpSockAddr lub lpSockAddrLen są równe NULL, zwracana jest żadnych informacji dotyczących zdalnego adresu gniazda zaakceptowane.

  • lpSockAddrLen
    Wskaźnik długość adresu w lpSockAddr w bajtach.lpSockAddrLen Jest parametr wynik wartości: początkowo powinien zawierać ilość miejsca wskazywanego przez lpSockAddr; na zwrot będzie zawierał rzeczywista długość (w bajtach) zwrócony adres.

Wartość zwracana

Niezerowa, jeśli funkcja jest pomyślne; w przeciwnym razie 0 i kod błędu mogą być pobierane przez wywołanie GetLastError.Do tej funkcji Członkowskich stosuje się następujące błędy:

  • WSANOTINITIALISED pomyślnie AfxSocketInit musi wystąpić przed użyciem tego interfejsu API.

  • WSAENETDOWN implementacja Windows Sockets wykrył, że podsystem sieci nie powiodło się.

  • WSAEFAULTlpSockAddrLen argument jest za mały (mniej niż rozmiar SOCKADDR struktury).

  • WSAEINPROGRESS trwa blokowania wywołanie Windows Sockets.

  • WSAEINVAL   Listennie może być wywoływana przed zaakceptować.

  • WSAEMFILE kolejki jest pusty po wejściu do akceptowania i deskryptory nie są dostępne.

  • WSAENOBUFSBrak miejsca w buforze jest dostępna.

  • WSAENOTSOCK deskryptora nie jest gniazdem.

  • WSAEOPNOTSUPP odwołanie gniazdo nie jest typu, który obsługuje zorientowany na połączenie usługę.

  • WSAEWOULDBLOCK gniazdo jest oznaczony jako nieblokujących i brak połączeń są obecne przyjmowane.

Uwagi

Ta procedura wyodrębnia pierwszego połączenia w kolejce oczekujących połączeń, tworzy nowe gniazdo z tych samych właściwości jako tego gniazda i dołącza go do rConnectedSocket.Jeśli brak połączeń oczekujących w kolejce, Zaakceptuj zwraca zero i GetLastError zwraca błąd.Zaakceptowane gniazda (rConnectedSocket) nie można zaakceptować więcej połączeń.Gniazda oryginalny pozostaje otwarte i nasłuchiwania.

Argument lpSockAddr jest parametr wynik, który jest wypełniane adres nawiązywania połączenia z gniazdem warstwy komunikacji jest znana.Zaakceptuj jest używana z typami podstawie połączenia gniazda takich jak SOCK_STREAM.

Wymagania

Nagłówek: afxsock.h

Zobacz też

Informacje

Klasa CAsyncSocket

Diagram hierarchii

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect