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