Je Hebt Per Probleem Met Je Winsock-code

In deze handleiding bespreken we enkele van de mogelijke triggers die Winsock-code kan veroorzaken, en stellen we mogelijke oplossingen voor die u kunt proberen om de editie op te lossen.Windows Socket API, ook wel bekend als Winsock, is elk type CP (API) voor productprogrammering dat wordt gebruikt om verbinding te maken tussen Windows Link-software en systeemservices. Het is specifiek gebaseerd op het Transmission Control Protocol / Internet Protocol (TCP / IP) en ontstaat als de Berkeley Unix Sockets-interface.

Het belangrijkste is de foutloze broncode via de Winsock Basic TCP / IP-clienttoepassing.

Winsock-clientbroncode

winsock-code

  #define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Om verbinding te maken met Ws2_32.lib, Mswsock.lib en dus Advapi32.lib# bericht pragma (lib, "Ws2_32.lib")# statement pragma (lib, "Mswsock.lib")# ideeën als resultaat van pragma (lib, "AdvApi32.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"int __cdecl hoofd (int argc, char ** argv)    WSADATA wsaData;    SOCKET ConnectSocket is gelijk aan INVALID_SOCKET;    struct addrinfo 4 . het resultaat is NULL,                    ( blanco ) ptr = NULL,                    Het advies;    const char 1 . sendbuf = "dit is een belangrijke test";    char recvbuf [DEFAULT_BUFLEN];    int iResultaat;    int recvbuflen = DEFAULT_BUFLEN;        Controleer // parameters    als (argc! = 2)        printf ("Gebruik:% s servernaam  n", argv [0]);        Retour 1;        // initialiseer winsock    iResult is WSAStartup (MAKEWORD (2,2), & wsaData);    indien denkbaar (iResult! = 0)        printf ("Fout in WSAS:% d  n", iResult);        terug naar 1;        ZeroMemory (& tips, sizeof (tips));    hints.ai_family impliceert AF_UNSPEC;   Opmerking я .ai_socktype SOCK_STREAM; is gelijk aan hints.ai_protocol impliceert IPPROTO_TCP;    // Resolutie van serveradres en bovendien poort    iResult is gelijk aan getaddrinfo (argv [1], DEFAULT_PORT, & hints, & resultaat);    alleen met hoofdletter (iResult! = 0)        printf ("getaddrinfo mislukt met fout:% h  n", iResult);        WSACleanup ();        beschermen terugkomen 1;        // Probeer verbinding te maken totdat het webadres succesvol is    ter ondersteuning van (ptr = resultaat; ptr! = NULL; ptr = ptr-> ai_next)        // Maak een specifieke SOCKET om verbinding te maken met de server        ConnectSocket betekent socket (ptr-> ai_family, ptr-> ai_socktype,            ptr-> ai_protocol);        indien mogelijk (ConnectSocket == INVALID_SOCKET)            printf ("De socket werkte niet, vergezeld van een fout:% ld  n", WSAGetLastError ());            WSACleanup ();            Retour 1;                // Breng een verbinding tot stand met de hoofdserver.        iResult = verbinden (ConnectSocket, ptr-> ai_addr, (int) ptr-> ai_addrlen);        in de (iResult == SOCKET_ERROR)            gesloten stopcontact (ConnectSocket);            ConnectSocket is gelijk aan INVALID_SOCKET;            Doorgaan met;                Pauze;        freeaddrinfo (resultaat);    wanneer (ConnectSocket == INVALID_SOCKET)        printf ("Kan niet rechtstreeks verbinding maken met de server!  n");        WSACleanup ();        Retour 1;        // stuur de nummer één buffer    iResult impliceert verzenden (ConnectSocket, sendbuf, (int) strlen (sendbuf), 0);    elke ervaring (iResult == SOCKET_ERROR)        printf ("Laadfout:% d  n", WSAGetLastError ());        gesloten sap (ConnectSocket);        WSACleanup ();        stuur 1;        printf ("Verzonden Bytes:% ld  n", iResult);    // Stop de manier om de associatie te verzenden, omdat er geen gegevens meer kunnen bestaan ​​verzonden    iResult past om te stoppen (ConnectSocket, SD_SEND);    uiteraard als (iResult == SOCKET_ERROR)        printf ("Stoppen mislukt door fout:% d  n", WSAGetLastError ());        gesloten stopcontact (ConnectSocket);        WSACleanup ();        Levering 1;        // Ontvang totdat de peer de verbinding vaak sluit    maken        iResult is altijd gelijk aan recv (ConnectSocket, recvbuf, recvbuflen, 0);        in (iResult> 0)            printf ("Aantal bytes bereikt:%  n", iResult);        maar meestal (iResult == 0)            printf ("Verbinding gesloten  n");        een ander            printf ("recv mislukt samen met fout:% d  n", WSAGetLastError ());     while (resultaat> 0);    // Schoon    gesloten stopcontact (ConnectSocket);    WSACleanup ();    Retourneert 0; 

Aan de slag met Winsock

Voer de voorbeeldcode van Winsock Client en Server uit

winsock-code

Vul de code in voor u ziet, de winsock-server

  • enkele minuten om te lezen.

Wat is de Winsock op deze computer?

Winsock is waarschijnlijk de programmeer-gui en het programma dat I per O-verzoeken afhandelt die zijn gekoppeld aan internetblogs op het Windows-systeem. Het wordt erkend als Winsock omdat het eigenlijk een geschikte Windows-aanpassing is van de Berkeley UNIX Sockets-interface. Er is een vergelijkbare consumenteninterface voor Mac-computers.

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