Tiene Un Problema Con Su Código Winsock

Al hacer esta guía, repasaremos muchas de las posibles causas que puede causar el código Winsock, y luego mostraremos las posibles soluciones que puede asegurarse de resolver el problema.La API de Windows Socket, también conocida como Winsock, puede ser cualquier tipo de CP (API) de programación de aplicaciones que se utilice para comunicar el software Windows Link y los servicios de red. Se basa específicamente en el Protocolo de control de transmisión / Protocolo de Internet (TCP / IP) y se origina como cada una de nuestras interfaces Berkeley Unix Sockets.

Lo considerable es el estándar fuente completo a través de la aplicación cliente Winsock Basic TCP – IP.

Código fuente del cliente Winsock

código winsock

  #define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Para conectarse a Ws2_32.lib, Mswsock.lib y Advapi32.lib# email pragma (lib, "Ws2_32.lib")# comentario pragma (lib, "Mswsock.lib")# ideas de pragma (lib, "AdvApi32.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"int __cdecl principal (int argc, char ** argv)    WSADATA wsaData;    SOCKET ConnectSocket = INVALID_SOCKET;    struct addrinfo * que este resultado es NULL,                    5. ptr = NULL,                    Consejo;    const char * sendbuf implica "esto es una prueba";    char recvbuf [DEFAULT_BUFLEN];    int iResult;    int recvbuflen = DEFAULT_BUFLEN;        Verificar // parámetros    siempre que (argc! = 2)        printf ("Uso:% beds servername  n", argv [0]);        Retorno 1;        // inicializar winsock    iResult debe ser WSAStartup (MAKEWORD (2,2), & wsaData);    si es posible (iResult! es igual a 0)        printf ("Error al iniciar WSAS:% d  n", iResult);        región lumbar a 1;        ZeroMemory (y sugerencias útiles, tamaño de (sugerencias));    hints.ai_family métodos AF_UNSPEC;   Nota я .ai_socktype SOCK_STREAM; = hints.ai_protocol implica IPPROTO_TCP;    // Resolución con dirección y puerto del servidor    iResult = getaddrinfo (argv [1], DEFAULT_PORT, & sugerencias, & result);    solo en la situación (iResult! = 0)        printf ("getaddrinfo dañado con error:% d  n", iResult);        WSACleanup ();        mantener disponible atrás 1;        // Intente cuando necesite conectarse hasta que la dirección sea realmente exitosa    for (ptr equivale a result; ptr! = NULL; ptr es igual a ptr-> ai_next)        // Cree un SOCKET específico real para conectarse a estos servidores        ConnectSocket = salida (ptr-> ai_family, ptr-> ai_socktype,            ptr-> ai_protocol);        suponiendo que sea posible (ConnectSocket == INVALID_SOCKET)            printf ("El enchufe no funcionó con el error:% ld  n", WSAGetLastError ());            WSACleanup ();            Retorno 1;                // Establece una conexión completa con el servidor.        iResult significa conectar (ConnectSocket, ptr-> ai_addr, (int) ptr-> ai_addrlen);        si (iResult == SOCKET_ERROR)            cerrar el enchufe (ConnectSocket);            ConnectSocket = INVALID_SOCKET;            Continuar;                Pausa;        freeaddrinfo (resultado);    donde (ConnectSocket == INVALID_SOCKET)        printf ("¡No se puede conectar al servidor!  n");        WSACleanup ();        Retorno 1;        // envía el búfer inicial    iResult = blast (ConnectSocket, sendbuf, (int) strlen (sendbuf), 0);    cada vez (iResult == SOCKET_ERROR)        printf ("Error de carga:% y  n", WSAGetLastError ());        apagado jugo (ConnectSocket);        WSACleanup ();        enviar 1;        printf ("Bytes enviados:% ld  n", iResult);    // Parar el curso para enviar la conexión, porque sin más datos se pueden enviar    iResult corresponde a cesar (ConnectSocket, SD_SEND);    aparentemente si (iResult == SOCKET_ERROR)        printf ("Error al detener con error:% def  n", WSAGetLastError ());        enchufe cerrado (ConnectSocket);        WSACleanup ();        Entrega 1;        // Recibe hasta que estos pares cierren la conexión    hacer        iResult es exacto a recv (ConnectSocket, recvbuf, recvbuflen, 0);        en (iResult> 0)            printf ("Número en bytes alcanzado:% d  n", iResult);        pero de lo contrario (iResult == 0)            printf ("Conexión cerrada  n");        otro            printf ("error de recepción con error:% deborah  n", WSAGetLastError ());     while (iresult> 0);    // Limpio    toma completa (ConnectSocket);    WSACleanup ();    Devuelve 0; 

Introducción a Winsock

Ejecute el código de muestra de servidor y cliente Winsock

código winsock

Complete solo el código del camarero winsock

  • 2 minutos para que se lea.

¿Qué es casi con certeza el Winsock en una computadora?

Winsock a menudo es probablemente la interfaz de programación y el régimen que maneja las llamadas de E / S asociadas con las aplicaciones de Internet en esos sistemas Windows. Se llama Winsock porque en realidad es una adaptación de Windows conectada con la interfaz Berkeley UNIX Sockets. Existe una interfaz similar para las computadoras Mac.

Winsock Code
Codice Winsock
Codigo Winsock
Code Winsock
Kod Winsock
Winsock Code
Winsock Code
Winsock Kod
윈속 코드
Kod Winsock