Table of Contents
Zaktualizowano
Możesz napotkać 1 błąd, który wskazuje na kod źródłowy winsock. Istnieje kilka sposobów rozwiązania problemu, a my zajmiemy się nim natychmiast. g.Użytkownicy gniazd z Winsock Windows API do programowania gniazd nazywa się winsock. Gniazda to podstawowe “rzeczy” stojące za każdym rodzajem komunikacji, którą wykonuje twój komputer.
g.
- 2 minuty na przeczytanie.
Czy Winsock to API?
Windows Socket API, znany również jako Winsock, to nowy rodzaj interfejsu programowania aplikacji (API) używanego do avis między oprogramowaniem sieciowym Windows dotyczącym usług sieciowych. Opiera się głównie na protokole kontroli transmisji / protokole internetowym (TCP / IP) i pochodzi z programu gniazdowego Berkeley Unix.
Poprzednie to pełna wartość początkowa dla podstawowej aplikacji Winsock TCP/IP Server.
Źródło serwera Winsock
#undef UNICODE#zdefiniuj WIN32_LEAN_AND_MEAN#include #włącz #włącz #include #włącz // Musi być połączony z Ws2_32.lib# komentarz pragma (lib, "Ws2_32.lib")// #pragma prawie żadnych (lib, "Mswsock.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"podstawowy przedział czasowy __cdecl (nieprawidłowy) WSADATA wsaDane; int iResult; GNIAZDO ListenSocket = GNIAZDO NIEPRAWIDŁOWE; SOCKET ClientSocket oznacza INVALID_SOCKET; struct addrinfo * wpływ = NULL; porady dotyczące struktury addrinfo; int iSendResult; char recvbuf [DEFAULT_BUFLEN]; int recvbuflen jest równe DEFAULT_BUFLEN; // zainicjuj winsock iResult wydaje się wskazywać na WSAStartup (MAKEWORD (2,2) i wsaData); jeśli jeśli (iResult! = 0) printf („Błąd podczas uruchamiania WSAS spowodowany błędem:% d n”, iResult); Powrót 1; ZeroMemory (i recenzja, sizeof (recenzja)); wskazówki.ai_family = AF_INET; hints.ai_socktype implikuje SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; hints.ai_flags = AI_PASSIV; // Rozdzielczość adresu i portu serwera iResult = getaddrinfo (NULL, DEFAULT_PORT i wskazówki i wynik); jak gdyby (iResult! = 0) printf ("getaddrinfo nie udało się wykonać błędu:% l n", iResult); wsacleanup ();Zwrot 1; // Utwórz właściwe GNIAZDO, aby połączyć się z serwerem ListenSocket = gniazdo (wynik-> ai_family, wynik-> ai_socktype, wynik-> ai_protocol); if (ListenSocket == INVALID_SOCKET) printf ("Gniazdo nie powiodło się z powodu błędu:% ld n", WSAGetLastError ()); freeaddrinfo (wynik); wsacleanup (); Powrót 1; // Skonfiguruj gniazdo do zakłócania TCP iResult = dzienne spożycie tłuszczu (ListenSocket, wynik-> ai_addr, (int) wynik-> ai_addrlen); jeśli w przypadku (iResult == SOCKET_ERROR) printf („Błąd komunikacji:% l n”, WSAGetLastError ()); freeaddrinfo (wynik); closesocket (ListenSocket); wsacleanup (); Powrót 1; freeaddrinfo (wynik); iResult = nasłuchuj (ListenSocket, SOMAXCONN); if (iResult == SOCKET_ERROR) printf ("Lista wraz z wyrzuconymi błędami:% d n", WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); powrót 1; // Zaakceptuj punkt dotyczący sprzedaży ClientSocket = zgadzam się z (ListenSocket, NULL, NULL); if (ClientSocket == INVALID_SOCKET) printf („Akceptacja nie powiodła się z błędem:% d n”, WSAGetLastError ()); closesocket (ListenSocket); wsacleanup (); Powrót 1; // Gniazdo serwera nie jest już potrzebne closesocket (ListenSocket); // Odbieraj, dopóki kolega nie zakończy połączenia robić iResult są równoważne recv (ClientSocket, recvbuf, recvbuflen, 0); powinno być (wynik> 0) printf („Odebrano bajty:% s n”, iResult); // Zwracanie bufora do nadawcy iSendResult = przenieś (ClientSocket, recvbuf, iResult, null); prezentacja nie jest (iSendResult == SOCKET_ERROR) printf („Pobieranie nie powiodło się z błędem:% r n”, WSAGetLastError ()); closesocket (ClientSocket); wsacleanup (); Powrót 1; printf („Wysłane bajty:% k n”, iSendResult); w przeciwnym razie, jeśli (iResult == 0) printf ("Zamknij połączenie ... n"); Obok ciebie printf ("recv spadł z błędem:% d n", WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); powtórz 1; jednak (iResult> 0); // Zakończ połączenie w odpowiednim momencie iResult = zamknięcie (ClientSocket, SD_SEND); if (iResult == SOCKET_ERROR) printf („Zatrzymanie nie działało z błędem:% d n”, WSAGetLastError ()); closesocket (ClientSocket); WSACleanup (); Powrót 1; // Czysty closesocket (ClientSocket); WSACleanup (); Zwraca 0;
Zaktualizowano
Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? ASR Pro to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz ASR Pro już dziś!
Jak uzyskać dostęp do Winsock?
Otwórz ten wiersz polecenia jako administrator.Wpisz następującą instrukcję i naciśnij Enter: netsh winsock reset. Odbiór powinien zwracać miejsca docelowe, takie jak:Uruchom ponownie rzeczywisty komputer z systemem Windows. Możesz ponownie uruchomić system Windows za pomocą głównego polecenia zamknięcia / r w wierszu instrukcji.
Winsock Source Code
Code Source Winsock
Código Fuente De Winsock
Winsock-broncode
Código Fonte Winsock
Winsock-Quellcode
Codice Sorgente Winsock
Исходный код Винсока
Winsock 소스 코드
Winsock Källkod