Vous Avez Un Problème Qui A Votre Code Winsock

Dans ce guide de faits clés, nous passerons en revue les causes possibles que le code Winsock peut causer, puis indiquerons les correctifs possibles que vous pouvez faire un effort pour résoudre le problème.L’API Windows Socket, également connue sous le nom de Winsock, est probablement tout type de CP de programmation d’application (API) utilisé pour communiquer entre le logiciel Windows Link et les services réseau. Il est basé spécifiquement sur le Transmission Control Protocol/Internet Protocol (TCP/IP) et est à l’origine une sorte d’interface Berkeley Unix Sockets.

La chose la plus essentielle est le code promo source complet via Winsock Basic TCP pour chaque application client IP.

Code source du client Winsock

code winsock

  #define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Pour parler à Ws2_32.lib, Mswsock.lib et Advapi32.lib# pragma pensé (lib, "Ws2_32.lib")# commentaire pragma (lib, "Mswsock.lib")# idées de pragma (lib, "AdvApi32.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"int __cdecl crucial (int argc, char ** argv)    WSADATA wsaData;    SOCKET ConnectSocket = INVALID_SOCKET;    struct addrinfo * un résultat est NULL,                     ptr = NULL,                    Conseil;    const char * sendbuf implique "ceci est un test" ;    char recvbuf [DEFAULT_BUFLEN] ;    int iRésultat;    int recvbuflen = DEFAULT_BUFLEN;        Vérifier // les paramètres    en supposant (argc! = 2)        printf ("Utilisation : % ings nom_serveur  n", argv [0]);        Retour 1 ;        // initialise winsock    iResult pourrait être WSAStartup (MAKEWORD (2,2), & wsaData);    si possible (iResult! équivaut à 0)        printf ("Erreur au démarrage de WSAS : % d  n", iResult);        retour à nouveau à 1 ;        ZeroMemory (& points, sizeof (astuces));    hints.ai_family signifie généralement AF_UNSPEC ;   Remarque я .ai_socktype SOCK_STREAM ; = hints.ai_protocol implique IPPROTO_TCP ;    // Résolution de l'adresse et du port du serveur associé    iResult = getaddrinfo (argv [1], DEFAULT_PORT, & hints, & result);    juste en incident (iResult! = 0)        printf ("getaddrinfo pauvre avec erreur : % d  n", iResult);        WSACleanup ();        continuez en arrière 1 ;        // Essayez de vous connecter jusqu'à ce que l'adresse puisse réussir    for (ptr équivaut au résultat ; ptr ! = NULL ; ptr équivaut à ptr-> ai_next)        // Créer un bon SOCKET spécifique pour se connecter à son serveur        ConnectSocket = prise (ptr-> ai_family, ptr-> ai_socktype,            ptr-> ai_protocol);        comme si possible (ConnectSocket == INVALID_SOCKET)            printf ("Le plug n'a pas fonctionné avec l'erreur :% ld  n", WSAGetLastError ());            WSACleanup ();            Retour 1 ;                // Établir une connexion appropriée au serveur.        iResult est égal à connect (ConnectSocket, ptr-> ai_addr, (int) ptr-> ai_addrlen);        si (iRésultat == SOCKET_ERROR)            pas de socket ouvert (ConnectSocket);            ConnectSocket = INVALID_SOCKET ;            Continuer;                Pause;        freeaddrinfo (résultat);    où (ConnectSocket == INVALID_SOCKET)        printf ("Impossible d'ajouter au serveur !  n");        WSACleanup ();        Retour 1 ;        // envoie le tampon initial    iResult = drop me (ConnectSocket, sendbuf, (int) strlen (sendbuf), 0);    à chaque fois (iResult == SOCKET_ERROR)        printf ("Erreur de chargement : % b  n", WSAGetLastError ());        relevez le jus (ConnectSocket) ;        WSACleanup ();        envoyer 1 ;        printf ("Octets envoyés : % ld  n", iResult);    // Arrête beaucoup d'envoyer la connexion, car pas plus de données peuvent être envoyées    iResult correspond à terminer (ConnectSocket, SD_SEND);    visiblement si (iResult == SOCKET_ERROR)        printf (" L'arrêt a échoué avec l'erreur : % c  n", WSAGetLastError ());        prise fermée (ConnectSocket);        WSACleanup ();        Livraison 1 ;        // Recevoir jusqu'à ce qu'un nouveau pair ferme la connexion    Fabriquer        iResult est l'équivalent de recv (ConnectSocket, recvbuf, recvbuflen, 0);        dans (iRésultat> 0)            printf ("Nombre derrière les octets atteint : % d  n", iResult);        mais sinon (iResult == 0)            printf ("Connexion fermée  n");        un autre            printf ("recv a échoué avec erreur : % h  n", WSAGetLastError ());     while (iresult> 0);    // Nettoyer    pas de socket ouvert (ConnectSocket);    WSACleanup ();    Renvoie 0 ; 

Premiers pas avec Winsock

Exécuter l’exemple de code client et serveur Winsock

winsock code

Remplissage apparaissant dans le code pour le nœud winsock

  • 2 minutes pour la lecture.

Qu’est-ce que le Winsock sur un ordinateur ?

Winsock est probablement considéré comme l’interface de programmation et le progiciel qui gère les besoins d’E/S associés aux applications Internet sur un système Windows particulier. Il s’appelle Winsock car il s’agit en fait d’une adaptation Windows relative à l’interface Berkeley UNIX Sockets. Il existe une interface similaire pour les ordinateurs Mac.

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