Share via


CAsyncSocket::Create

Llame a la función miembro Crear después de crear un objeto de socket para crear el socket de Windows y para adjuntarlo.

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 
);

Parámetros

  • nSocketPort
    Un puerto conocido que se utilizan con el socket, o 0 si desea que el Windows Sockets para seleccionar un puerto.

  • nSocketType
    SOCK_STREAM o SOCK_DGRAM.

  • lEvent
    Una máscara de bits que especifica una combinación de eventos de red en los que la aplicación se interesada.

    • FD_READ desea recibir notificaciones de disponibilidad para leer.

    • FD_WRITE desea recibir notificaciones de disponibilidad para escribir.

    • FD_OOB desea recibir la notificación de la llegada de datos fuera de banda.

    • FD_ACCEPT desea recibir notificaciones de conexiones entrantes.

    • FD_CONNECT desea recibir notificación de conexión completa.

    • FD_CLOSE desea recibir la notificación del socket.

  • lpszSockAddress
    Un puntero a una cadena que contiene la dirección de red de socket conectado, un número dotted como “128.56.22.8”. Pasar la cadena nulo para este parámetro indica que la instancia CAsyncSocket debe escuchar actividad de cliente en todas las interfaces de red.

Valor devuelto

Distinto de cero si la función es correcta; si no 0, y un código de error específico puede recuperar llamando a GetLastError.Los errores siguientes se aplican a esta función miembro:

  • WSANOTINITIALISED A AfxSocketInit correcto debe aparecer antes de utilizar esta API.

  • La implementación de Windows Sockets de WSAENETDOWN The detectó que produjo el subsistema de la red.

  • No se admiten en la familia especificada speed la dirección de WSAEAFNOSUPPORT.

  • La operación de Windows Sockets de bloqueo de WSAEINPROGRESS A está en curso.

  • Los descriptores de archivo de WSAEMFILE No Más están disponibles.

  • WSAENOBUFS ningún espacio en búfer está disponible.El socket no pueden crearse.

  • El puerto especificado speed WSAEPROTONOSUPPORT no se admite.

  • El puerto especificado speed WSAEPROTOTYPE es el tipo incorrecto para este socket.

  • No se admite el tipo especificado el socket de WSAESOCKTNOSUPPORT en esta familia de direcciones.

Comentarios

Crear llama Socket y si es correcto, llama a Enlace para enlazar el socket la dirección especificada.Se admiten los siguientes tipos de socket:

  • SOCK_STREAM Proporciona secuenciado, confiable, dúplex completo, conexión- basado byte fluye.Utiliza el Protocolo de control de transmisión (TCP) para la familia de direcciones de Internet.

  • SOCK_DGRAM admite los datagramas, que son los paquetes sines conexión, no confiables de una longitud máxima (normalmente pequeña) fija.Utiliza el Protocolo de datagramas de usuario (UDP) para la familia de direcciones de Internet.

    [!NOTA]

    La función miembro Aceptar toma una referencia a un nuevo, vacío objeto de CSocket como parámetro.Debe construir este objeto antes de llamar a Aceptar.Tenga presente que si este objeto de socket sale del ámbito, la conexión se cierra.No llame a Crear para este nuevo objeto de socket.

Nota importanteImportante

Crear no segura para subprocesos.Si se llama a en un entorno multiproceso donde podría llamar simultáneamente en diferentes subprocesos, asegúrese de proteger cada llamada con exclusión mutua u otro bloqueo de sincronización.

Para obtener más información sobre los sockets de la secuencia y el datagrama, vea los artículos Windows Sockets: Fondo y Windows Sockets: Puertos y direcciones de socket y Windows Sockets 2 API.

Requisitos

Header: afxsock.h

Vea también

Referencia

Clase de CAsyncSocket

Gráfico de jerarquía

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown