Поделиться через


CAsyncSocket::Accept

Эта функция-член вызывается для принятия подключения для сокета.

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

Параметры

  • rConnectedSocket
    Ссылка, указывающий новое сокет, доступного для соединения.

  • lpSockAddr
    Указатель на структуру SOCKADDR, получающая адрес сокета, например при подключении известен в сети. Точный формат аргумента lpSockAddr указан адрес сокета был установлен семейством при создано. Если lpSockAddr и/или lpSockAddrLen равно NULL, не возвращается никаких сведений об удаленном адресе принятого сокета.

  • lpSockAddrLen
    Указатель на длину адресов в lpSockAddr в байтах. lpSockAddrLen параметр результата: value-of он должен изначально содержать объем пространства, указанное в lpSockAddr; при извлечении он содержал фактическую длину (в байтах) возвращаемого адреса.

Возвращаемое значение

Ненулевой если функция успешно; в противном случае – значение 0, а конкретный код ошибки могут быть восстановлены путем вызова GetLastError. Об ошибке применяемых к данному функции-члену.

  • WSANOTINITIALISED А успешное AfxSocketInit должно произойти перед использованием этого API.

  • Реализация Windows WSAENETDOWN sockets обнаружила, что подсистема сети.

  • WSAEFAULT Аргумент lpSockAddrLen слишком мало (меньше, чем размер структуры SOCKADDR ).

  • Блокирующий вызов sockets WSAEINPROGRESS a Windows.

  • WSAEINVAL   Listen не было вызывается до прослушивателем.

  • WSAEMFILE Очередь пуста записи, чтобы принять и никакие дескрипторы.

  • Нет места доступно WSAENOBUFS буфера.

  • Не WSAENOTSOCK дескриптор сокета.

  • WSAEOPNOTSUPP Связанного сокета не является типом, который подключение- располагается поддержки обслуживают.

  • WSAEWOULDBLOCK Сокет помечены как nonblocking и соединения отсутствует, которые нужно выполнить.

Заметки

Эта процедура извлекает первое подключение в очереди ожидающих подключений, создает новое сокет с теми же свойствами, что этот сокет и вложение ее в rConnectedSocket. При отсутствии ожидающих подключений не присутствует в очереди Принять возвращает ноль и GetLastError возвращает ошибку. (Сокет (rConnectedSocket) нельзя использовать для принятия нескольких соединений. Исходный открыть остаток сокета и прослушивания.

Аргумент lpSockAddr параметр результата, который заполняется с адресом при подключении к сокету, например известен к сообщениям наслаивает. Принять используется с подключение- на типами сокета, как SOCK_STREAM.

Требования

Header: afxsock.h

См. также

Ссылки

Класс CAsyncSocket

Диаграмма иерархии

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect