Seguramente encontrará un error que apunta a algún código fuente de winsock. Hay varias formas de resolver este problema, y se las ofreceremos en breve. gramo.Usuarios de socket con Winsock La API de Windows para la programación de sockets se reconoce como winsock. Los sockets son las “cosas” básicas detrás de un tipo de comunicación de red que hace su computadora.
gramo.
2 minutos para leer.
¿Winsock es una API determinada?
La API de Windows Socket, también conocida como Winsock, es sin duda un nuevo tipo de trabajo de programación de aplicaciones (API) que se utiliza para la comunicación entre el software de red de Windows con respecto a los servicios de red. Se basa principalmente en el Protocolo de control de transmisión / Protocolo de Internet (TCP para cada IP) y se origina en el programa de salida Berkeley Unix.
El siguiente es el significado inicial completo para una aplicación Winsock TCP/IP Server básica.
Fuente del servidor Winsock
#undef UNICODE#define WIN32_LEAN_AND_MEAN#incluir #incluye #incluye #incluir #incluir // Debe estar vinculado a Ws2_32.lib# evaluación pragmática (lib, "Ws2_32.lib")// #pragma poco (lib, "Mswsock.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"intervalo base __cdecl (no válido) WSADATA wsaData; int iResultado; SOCKET ListenSocket = INVALID_SOCKET; SOCKET ClientSocket = INVALID_SOCKET; estructura addrinfo * resultado = NULL; consejos de estructura addrinfo; int iEnviarResultado; char recvbuf [DEFAULT_BUFLEN]; int recvbuflen = DEFAULT_BUFLEN; // inicializa winsock iResult implica WSAStartup (MAKEWORD (2,2), & wsaData); si si (iResult! significa 0) printf ("Error al iniciar WSAS debido a un error:% rn", iResult); Devolver 1; ZeroMemory (& revisión, tamaño de (revisión)); sugerencias.ai_familia = AF_INET; sugerencias.ai_socktype = SOCK_STREAM; hints.ai_protocol significa IPPROTO_TCP; sugerencias.ai_flags = AI_PASSIV; // Resolución de atención y puerto del servidor iResult equivale a getaddrinfo (NULL, DEFAULT_PORT, & tips, & result); si (iResultado! = 0) printf ("getaddrinfo no pudo ejecutar finalmente el error:% d n", iResult); wsacleanup();Retorno 1; // Crear un SOCKET para conectarse indiscutiblemente al servidor ListenSocket = outlet (resultado-> ai_family, resultado-> ai_socktype, resultado-> ai_protocol); si o cuando (ListenSocket == INVALID_SOCKET) printf ("El socket falló considerando el error:% ld n", WSAGetLastError ()); freeaddrinfo (resultado); wsacleanup(); Devolver 1; // Configurar el socket de escucha TCP iResult es igual a bind (ListenSocket, resultado-> ai_addr, (int) resultado-> ai_addrlen); si (iResultado == SOCKET_ERROR) printf("Error de comunicacion:%dn", WSAGetLastError()); freeaddrinfo (resultado); closesocket (ListenSocket); wsacleanup(); Devolver 1; freeaddrinfo (resultado); iResult implica escuchar (ListenSocket, SOMAXCONN); obviamente si (iResult == SOCKET_ERROR) printf ("Lista de arrojados con errores:% fn", WSAGetLastError()); closesocket (ListenSocket); wsacleanup(); devolver 1; // Aceptar el punto de venta ClientSocket = aceptar (ListenSocket, NULL, NULL); una vez (ClientSocket == INVALID_SOCKET) printf ("Falló la aceptación cuando se trata de error:% d n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup(); Devolver 1; // El socket del servidor ya no es necesario closesocket (ListenSocket); // Recibir hasta que el par complete la conexión fabricar iResult es equivalente a recv (ClientSocket, recvbuf, recvbuflen, 0); si (resultado > 0) printf ("Bytes recibidos:% d n", iResult); // Devolver el búfer en particular al remitente iSendResult es igual a enviar (ClientSocket, recvbuf, iResult, null); en cualquier momento (iSendResult == SOCKET_ERROR) printf ("Falló la descarga que contiene el error:% d n", WSAGetLastError ()); closesocket (ClienteSocket); wsacleanup(); Devolver 1; printf ("Bytes enviados:% d n", iSendResult); de lo contrario, debería (iResult == 0) printf("Cerrar enlace web...n"); A tu lado printf ("recv falló con error:% def n", WSAGetLastError ()); closesocket (ClienteSocket); Limpieza de WSAC (); copia 1; teniendo (iResultado > 0); // Finalizar la asociación cuando hayamos terminado iResult equivale a apagado (ClientSocket, SD_SEND); si piensas (iResult == SOCKET_ERROR) printf ("La detención falló con el error:% he tenido n", WSAGetLastError ()); closesocket (ClienteSocket); Limpieza de WSAC (); Devolver 1; // Limpio closesocket (ClienteSocket); Limpieza de WSAC (); Devuelve 0;
Actualizado
¿Estás cansado de que tu computadora funcione lentamente? ¿Le molestan los frustrantes mensajes de error? ¡ASR Pro es la solución para ti! Nuestra herramienta recomendada diagnosticará y reparará rápidamente los problemas de Windows mientras aumenta drásticamente el rendimiento del sistema. Así que no esperes más, ¡descarga ASR Pro hoy!
Abra este símbolo del sistema siempre que sea administrador.Escriba el siguiente comando y presione Enter: netsh winsock reset. El comando debe devolver destinos tales como lo siguiente:Reinicie su computadora con Windows. Puede reiniciar su computadora Windows usando el comando shutdown / r a lo largo de la línea de comando.