Table of Contents
Uppdaterad
Du kommer förmodligen att stöta på ett fel som pekar på återförsäljarkoden för winsock. Det finns flera sätt att äntligen lösa detta problem, och vi kommer att ta itu med det inom kort. g.Socket-användare med Winsock Windows API för socketprogrammering heter winsock. Sockets är de grundläggande “sakerna” bakom all typ av nätverkskommunikation som din dator gör.
g.
- 9 minuter att läsa.
Är Winsock ett API?
Windows Socket API, även känt som Winsock, är den nya typen av applikationsprogrammeringsgränssnitt (API) begagnat för kommunikation mellan Windows nätverksprogram angående “nätverkstjänster”. Det är främst baserat på Transmission Control Protocol / Internet Protocol (TCP / IP) och kommer från Berkeley Unix plug-programmet.
Följande är det fullständiga initiala värdet under en grundläggande Winsock TCP/IP Server-plan.
Winsock-serverkälla
#undef UNICODE#define WIN32_LEAN_AND_MEAN#include #include #include #include #include // Måste vara länkad till Ws2_32.lib# pragmakommentar (lib, "Ws2_32.lib")// #pragma little (lib, "Mswsock.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"basintervall __cdecl (ogiltigt) WSADATA wsaData; int iResult; SOCKET ListenSocket = INVALID_SOCKET; SOCKET ClientSocket = INVALID_SOCKET; struct addrinfo (mellanslag) resultat = NULL; struct addrinfo råd; int iSendResult; char recvbuf [DEFAULT_BUFLEN]; int recvbuflen = DEFAULT_BUFLEN; // initiera winsock iResult innebär WSAStartup (MAKEWORD (2,2), & wsaData); if if (iResult! är lika med 0) printf ("Fel vid start av WSAS på grund av fel:% b n", iResult); Retur 1; ZeroMemory (& recension, sizeof (recension)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol är lika med IPPROTO_TCP; hints.ai_flags = AI_PASSIV; // Upplösning av serveradress men även port iResult = getaddriinfo (NULL, DEFAULT_PORT, & tips, & resultat); om (iResult! = 0) printf ("getaddrinfo misslyckades med att utföra fel:% d n", iResult); wsacleanup ();Retur 1; // Skapa en SOCKET för att ansluta till en del av servern ListenSocket = socket (resultat-> ai_familj, resultat-> ai_socktype, resultat-> ai_protokoll); i händelse av att (ListenSocket == INVALID_SOCKET) printf ("Socket misslyckades med fel:% ld n", WSAGetLastError ()); freeaddrinfo (resultat); wsacleanup (); Retur 1; // Konfigurera TCP-lyssningsuttaget iResult betyder bind (ListenSocket, resultat-> ai_addr, (int) resultat-> ai_addrlen); if (iResult == SOCKET_ERROR) printf ("Kommunikationsfel:% h n", WSAGetLastError ()); freeaddrinfo (resultat); closesocket (ListenSocket); wsacleanup (); Retur 1; freeaddrinfo (resultat); iResult = kylskåpet (ListenSocket, SOMAXCONN); if (iResult == SOCKET_ERROR) printf ("Lista över kastade med fel:% r n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); retur 1; // Acceptera en persons försäljningsställe ClientSocket innebär acceptera (ListenSocket, NULL, NULL); om du tror (ClientSocket == INVALID_SOCKET) printf ("Acceptans misslyckades med fel:% t n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); Retur 1; // Serversocket behövs inte längre closesocket (ListenSocket); // Ta emot någon gång den peer slutför anslutningen göra iResult motsvarar recv (ClientSocket, recvbuf, recvbuflen, 0); där (resultat> 0) printf ("Mottagna bytes:% d n", iResult); // Återlämna en sköld till avsändaren iSendResult är lika med send (ClientSocket, recvbuf, iResult, null); varje (iSendResult == SOCKET_ERROR) printf ("Nedladdning misslyckades bland fel:% d n", WSAGetLastError ()); closesocket (ClientSocket); wsacleanup (); Retur 1; printf ("Bytes skickade:% d n", iSendResult); annars, oavsett om (iResult == 0) printf ("Stäng led ... n"); Bredvid dig printf ("recv misslyckades med fel:% d n", WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); kopia 1; dock (iResult> 0); // Avsluta anslutningen trots att vi är klara iResult = stäng av (ClientSocket, SD_SEND); if (iResult == SOCKET_ERROR) printf ("Stoppning misslyckades med fel:% d n", WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); Retur 1; // Rent closesocket (ClientSocket); WSACleanup (); Returnerar 0;
Uppdaterad
Är du trött på att din dator går långsamt? Irriterad av frustrerande felmeddelanden? ASR Pro är lösningen för dig! Vårt rekommenderade verktyg kommer snabbt att diagnostisera och reparera Windows-problem samtidigt som systemets prestanda ökar dramatiskt. Så vänta inte längre, ladda ner ASR Pro idag!
Hur kommer jag åt Winsock?
Öppna den här kommandotolken som administratör.Skriv ofta följande kommando och tryck på Enter: netsh winsock totally reset. Kommandot bör returnera destinationer som för närvarande följande:Starta om din Windows-dator. Du kan starta om Windows med kommandot shutdown / r på din nuvarande kommandorad.
Winsock Source Code
Kod źródłowy Winsock
Code Source Winsock
Código Fuente De Winsock
Winsock-broncode
Código Fonte Winsock
Winsock-Quellcode
Codice Sorgente Winsock
Исходный код Винсока
Winsock 소스 코드