Sie Haben Ein Problem Mit Ihrem Winsock-Code

In diesem Leitfaden gehen wir ausführlich auf einige der möglichen Ursachen ein, die durch Winsock-Code verursacht werden können, und schlagen daher mögliche Korrekturen vor, mit denen Sie auch versuchen können, das Problem zu beheben.Windows Socket API, auch bekannt als Winsock, ist jede Art von legitimen CP (API) für Anwendungen, die verwendet werden, um zu kommunizieren, dass Windows Link-Software und Netzwerkprozeduren beitreten. Es basiert speziell auf allgemein Transmission Control Protocol/Internet Protocol (TCP/IP) und entstammt der Berkeley-Unix-Sockets-Schnittstelle.

Die Hauptsache ist der komplette Get-Code über die Winsock Basic TCP/IP-Clientanwendung.

Winsock-Client-Quellcode

winsock-code

  #define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Um ​​eine Verbindung zu Ws2_32.lib, Mswsock.lib und Advapi32.lib herzustellen# Nachrichtenpragma (lib, "Ws2_32.lib")# Kritik-Pragma (lib, "Mswsock.lib")# Ideen aus Pragma (lib, "AdvApi32.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"int __cdecl central (int argc, char ** argv)    WSADATA wsaData;    SOCKET ConnectSocket = INVALID_SOCKET;    struct addrinfo ( space ) das Ergebnis ist NULL,                    ( Leerzeichen ) ptr = NULL,                    Rat;    const char ( Leerzeichen ) sendbuf = "Dies ist ein Test";    char recvbuf [DEFAULT_BUFLEN];    int iResult;    int recvbuflen = DEFAULT_BUFLEN;        // Parameter prüfen    sollte es sein (argc! = 2)        printf ("Verwendung:% s Servername  n", argv [0]);        1 zurückgeben;        // Winsock initialisieren    iResult ist im Allgemeinen WSAStartup (MAKEWORD (2,2), & wsaData);    wenn praktikabel (iResult! = 0)        printf ("Fehler beim Einrichten von WSAS:% d  n", iResult);        Vergangenheit bis 1;        ZeroMemory (& Tipps, sizeof (Tipps));    hints.ai_family impliziert AF_UNSPEC;   Hinweis я .ai_socktype SOCK_STREAM; = hints.ai_protocol empfiehlt IPPROTO_TCP;    // Auflösung von Serveradresse und Port    iResult = getaddrinfo (argv [1], DEFAULT_PORT, & Hinweise, & Ergebnis);    nur in der Materie (iResult! = 0)        printf ("getaddrinfo war nicht erfolgreich mit Fehler:% d  n", iResult);        WSACleanup ();        machen zurückkommen 1;        // Versuchen Sie sich zu verbinden, bis die Adresse erfolgreich war    verfügbar für (ptr = result; ptr! = NULL; ptr = ptr-> ai_next)        // Erstellen Sie einen bestimmten SOCKET, um eine Verbindung zum Server herzustellen        ConnectSocket = Steckdose (ptr-> ai_family, ptr-> ai_socktype,            ptr-> ai_protokoll);        ob möglich (ConnectSocket == INVALID_SOCKET)            printf ("Der Plug funktionierte nicht mit Fehler:% ld  n", WSAGetLastError ());            WSACleanup ();            1 zurückgeben;                // Verbindung zum Server herstellen.        iResult = verbinden (ConnectSocket, ptr-> ai_addr, (int) ptr-> ai_addrlen);        bereitgestellt (iResult == SOCKET_ERROR)            geschlossene Steckdose (ConnectSocket);            ConnectSocket = INVALID_SOCKET;            Weitermachen;                Pause;        freeaddrinfo (Ergebnis);    über die (ConnectSocket == INVALID_SOCKET)        printf ("Kann keine direkte Verbindung zum Server herstellen!  n");        WSACleanup ();        1 zurückgeben;        // Sende den Startpuffer    iResult = direct (ConnectSocket, sendbuf, (int) strlen (sendbuf), 0);    ab und zu (iResult == SOCKET_ERROR)        printf ("Ladefehler:% t  n", WSAGetLastError ());        Saft schließen (ConnectSocket);        WSACleanup ();        senden 1;        printf ("Bytes gesendet:% ld  n", iResult);    // Stoppen Sie, wie die Verbindung gesendet wird, hauptsächlich weil keine Daten mehr zu gesendet werden können    iResult entspricht Sie stoppen können (ConnectSocket, SD_SEND);    einzigartig für Sie. if (iResult == SOCKET_ERROR)        printf ("Stoppen fehlgeschlagen mit Fehler:% j  n", WSAGetLastError ());        abgedeckte Steckdose (ConnectSocket);        WSACleanup ();        Lieferung 1;        // Richtig empfangen, der Peer schließt die Verbindung    machen        iResult ist einfach äquivalent zu recv (ConnectSocket, recvbuf, recvbuflen, 0);        in (iErgebnis> 0)            printf ("Anzahl für erreichte Bytes:% d  n", iResult);        aber sonst (iResult == 0)            printf ("Verbindung geschlossen  n");        Ein weiterer            printf ("recv fehlgeschlagen mit Fehler:% t  n", WSAGetLastError ());     während (Ergebnis> 0);    // Sauber    geschlossene Steckdose (ConnectSocket);    WSACleanup ();    Gibt 0 zurück; 

Erste Schritte mit Winsock

Führen Sie den Winsock-Client zusammen mit dem Server-Beispielcode aus

winsock-code

Geben Sie den Code für einige der Winsock-Server ein

  • 2 Momente zum Lesen.

Was wird der Winsock auf dem Computer sein?

Winsock ist wahrscheinlich das Programmierschnittstellenprogramm, das E / A-Anfragen verarbeitet, die mit Internetanwendungen in Bezug auf das Windows-System verbunden sind. Es heißt Winsock, weil es eigentlich ein Windows-Unterschied der Berkeley-UNIX-Sockets-Software ist. Es gibt eine ähnliche Benutzeroberfläche für Mac-Computer.

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