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.
Importante
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