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


CAsyncSocket::Create

Вызовите функцию-член Создать объекта после создания сокета для создания сокет Windows и вложить его.

BOOL Create( 
   UINT nSocketPort = 0, 
   int nSocketType = SOCK_STREAM, 
   long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 
   LPCTSTR lpszSocketAddress = NULL  
);

Параметры

  • nSocketPort
    Известный порт, используемый с сокетом, или 0, если нужно выделить Windows порт SSL.

  • nSocketType
    SOCK_STREAM или SOCK_DGRAM.

  • lEvent
    Битовая маска, определяющая события из сети сочетания, в которых приложение заинтересовано.

    • FD_READ может принимать уведомления о готовности для чтения.

    • FD_WRITE может принимать уведомления о готовности для записи.

    • FD_OOB может принимать уведомления о внеполосных поступления данных.

    • FD_ACCEPT может принимать уведомления о входящих подключений.

    • FD_CONNECT может принимать уведомления о подключения.

    • FD_CLOSE может принимать уведомления о закрытия сокета.

  • lpszSockAddress
    Указатель на строку, содержащую сетевой адрес сокета подключенного, предоставленного точки, например "128.56.22.8". Передача строки NULL для этого параметра указывает, что экземпляр CAsyncSocket должен ожидать действия клиента на всех сетевых интерфейсах.

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

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

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

  • Реализация SSL WSAENETDOWN Windows обнаружила, подсистема сети завершается ошибкой.

  • WSAEAFNOSUPPORT, определенный семейства адресов не поддерживается.

  • Операция Windows sockets блокировки a WSAEINPROGRESS выполняется.

  • WSAEMFILE больше нет идентификатора файла доступно.

  • WSAENOBUFS нет места доступно буфера. Сокет создать невозможно.

  • WSAEPROTONOSUPPORT указанный порт не поддерживается.

  • WSAEPROTOTYPE указанный порт неверный тип этого сокета.

  • WSAESOCKTNOSUPPORT тип заданного сокета не поддерживается в этом семейства адресов.

Заметки

Создать вызывает Сокет и при успешном, он вызывает метод Привязка для привязки сокет к определенному адресу. Поддерживаются следующие типы сокета.

  • SOCK_STREAM - последовательного, надежный, дуплексный, потоки байта подключение- зависимости. Использует протокол TCP (TCP) для семейства адресов в Интернете.

  • SOCK_DGRAM поддерживает датаграммы, connectionless, ненадежные пакеты фиксированной (как правило, небольшой) максимальной длины. Использует UDP (UDP) для семейства адресов в Интернете.

    Примечание

    Функцию-член Принять принимает ссылку на новый, пустой объект CSocket в качестве параметра.Необходимо построить этот объект перед вызовом Принять.Имейте в виду, что, если этот объект сокета выходит за пределы области, закроет подключение.Не вызывайте метод Создать для нового объекта сокета.

Важно!

Создатьnot потокобезопасное.Если этот метод вызывается при в многопотоковых операций потоков среде, где она может вызываться другими потоками одновременно, уверенный защитить каждый вызов с мьютексом или другим блокировании синхронизации.

Дополнительные сведения о потоке и сокетах датаграмм см. в статье Windows SSL. Фон и Windows SSL. Порты и адреса сокета и API Windows 2 SSL.

Требования

Header: afxsock.h

См. также

Ссылки

Класс CAsyncSocket

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

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown