Table of Contents
Mise à jour
Vous pouvez rencontrer une erreur qui pointe vers le code source de winsock. Il existe plusieurs façons de résoudre ce problème, et nous pourrions nous en occuper sous peu. g.Utilisateurs de socket utilisant Winsock L’API Windows pour la programmation des sockets peut s’appeler winsock. Les sockets sont les “choses” de base qui se cachent derrière tout type de communication réseau de votre ordinateur.
g.
- 2 minutes de lecture.
Winsock est-il une API ?
L’API Windows Socket, également connue sous le nom de Winsock, est un nouveau type de connexion de programmation d’application (API) utilisée pour la communication entre le programme logiciel de mise en réseau Windows concernant les services réseau. Il est principalement basé sur le protocole de contrôle de transmission / protocole Internet (TCP / IP) et provient du programme de socket Berkeley Unix.
Ce qui suit est la valeur d’ouverture complète pour une application Winsock TCP/IP Server de base.
Source du serveur Winsock
#undef UNICODE#define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Doit être lié à Ws2_32.lib# message de pragma (lib, "Ws2_32.lib")// #pragma peu (lib, "Mswsock.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"intervalle de base __cdecl (invalide) WSADATA wsaData ; int iRésultat ; SOCKET ListenSocket = INVALID_SOCKET ; SOCKET ClientSocket = INVALID_SOCKET ; struct addrinfo * result = NULL; struct addrinfo conseil ; int iSendResult ; char recvbuf [DEFAULT_BUFLEN] ; int recvbuflen = DEFAULT_BUFLEN ; // initialise winsock iResult implique WSAStartup (MAKEWORD (2,2), & wsaData); si n'importe quand (iResult! = 0) printf ("Erreur de démarrage de WSAS due en ce qui concerne l'erreur : % d n", iResult); Retour 1 ; ZeroMemory (& avis, sizeof (avis)); conseils.ai_family = AF_INET ; conseils.ai_socktype = SOCK_STREAM ; conseils.ai_protocol = IPPROTO_TCP ; hints.ai_flags implique AI_PASSIV ; // Résolution de l'adresse et du port du serveur d'hébergement iResult implique getaddrinfo (NULL, DEFAULT_PORT, & conseils, & résultat); si (iRésultat ! = 0) printf ("getaddrinfo n'a pas pu exécuter l'erreur :% d n", iResult); wsacleanup ();Retour 1; // Créez un SOCKET pour vous connecter si vous le souhaitez au serveur ListenSocket = sortie (result-> ai_family, result-> ai_socktype, result-> ai_protocol); si (ListenSocket == INVALID_SOCKET) printf ("Socket a échoué avec l'erreur :% ld n", WSAGetLastError ()); freeaddrinfo (résultat); wsacleanup (); Retour 1 ; // Configurer le socket d'écoute TCP iResult = bind (ListenSocket, result-> ai_addr, (int) result-> ai_addrlen); si (iRésultat == SOCKET_ERROR) printf ("Erreur de communication :% d n", WSAGetLastError()); freeaddrinfo (résultat); closesocket (ListenSocket); wsacleanup (); Retour 1 ; freeaddrinfo (résultat); iResult est égal à listen (ListenSocket, SOMAXCONN); dans les cas où (iResult == SOCKET_ERROR) printf ("Liste des erreurs lancées :% d n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); rebondir tout de suite 1 ; // Accepter le point de vente ClientSocket = accepter (ListenSocket, NULL, NULL); si (ClientSocket == INVALID_SOCKET) printf ("L'acceptation a échoué avec l'erreur :% d n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); Retour 1 ; // Le socket serveur n'est plus nécessaire closesocket (ListenSocket); // Réception jusqu'à ce que le pair termine la connexion Fabriquer iResult est équivalent à recv (ClientSocket, recvbuf, recvbuflen, 0) ; si (résultat > 0) printf ("Octets reçus :% d n", iResult); // Renvoie un tampon à l'expéditeur iSendResult = envoyer (ClientSocket, recvbuf, iResult, null); à tout moment (iSendResult == SOCKET_ERROR) printf ("Téléchargement en panne avec erreur :% d n", WSAGetLastError ()); closesocket (ClientSocket); wsacleanup (); Retour 1 ; printf ("Octets envoyés :% d n", iSendResult); non, si (iResult == 0) printf("Fermer la connexion...n"); A côté de toi printf ("recv a échoué avec l'erreur :% j n", WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); répéter 1 ; au contraire (iResult > 0) ; // Termine généralement la connexion lorsque nous avons terminé iResult est égal à shutdown (ClientSocket, SD_SEND); dans le cas (iResult == SOCKET_ERROR) printf ("L'arrêt a échoué avec l'erreur :% n n", WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); Retour 1 ; // Nettoyer closesocket (ClientSocket); WSACleanup (); Renvoie 0 ;
Mise à jour
Vous en avez assez que votre ordinateur soit lent ? Agacé par des messages d'erreur frustrants ? ASR Pro est la solution pour vous ! Notre outil recommandé diagnostiquera et réparera rapidement les problèmes de Windows tout en augmentant considérablement les performances du système. Alors n'attendez plus, téléchargez ASR Pro dès aujourd'hui !
-
Exécutez généralement l’exemple de code client et serveur Winsock
Comment puis-je accéder à Winsock ?
Ouvrez cette invite de commande par rapport à l’administrateur.Tapez la commande suivante et appuyez sur Entrée : netsh winsock reset. La commande doit renvoyer des destinations par exemple comme suit :Redémarrez votre ordinateur Windows. Vous pouvez redémarrer Windows en utilisant shutdown / r have sur la ligne de commande.
Winsock Source Code
Kod źródłowy Winsock
Código Fuente De Winsock
Winsock-broncode
Código Fonte Winsock
Winsock-Quellcode
Codice Sorgente Winsock
Исходный код Винсока
Winsock 소스 코드
Winsock Källkod