Table of Contents
Aggiornato
Potresti riscontrare un errore che punta al codice sorgente principale di winsock. Ci sono diverse strade per risolvere questo problema, e ci limiteremo a breve. G.Utenti socket con Winsock Winsock riconosce l’API di Windows per la programmazione dei socket. I socket sono le “cose” di base dietro la maggior parte dei tipi di comunicazione di rete che il tuo computer fa.
G.
- 2 minuti per leggere.
Winsock è una nuova fantastica API?
L’API di Windows Socket, nota anche come Winsock, potrebbe essere un nuovo tipo di API (Application Programming Dock) utilizzato per la comunicazione tra il software di rete di Windows che ha a che fare con i servizi di rete. Si basa principalmente su una sorta di protocollo di controllo della trasmissione / protocollo Internet (TCP o IP) e ha origine dal programma outlet Berkeley Unix.
Quanto segue è il valore iniziale completo per un’applicazione Winsock TCP/IP Server di base.
Sorgente del server Winsock
#undef UNICODE#definisci WIN32_LEAN_AND_MEAN#include #include #include #include #include // Deve essere collegato a Ws2_32.lib# pragma little (lib, "Ws2_32.lib")// #pragma little (lib, "Mswsock.lib")#define DEFAULT_BUFLEN 512#define DEFAULT_PORT "27015"intervallo di base __cdecl (non valido) WSADATA wsaData; int iRisultato; SOCKET ListenSocket = INVALID_SOCKET; SOCKET ClientSocket = INVALID_SOCKET; struct addrinfo * risultato = NULL; struct addrinfo consigli; int iSendResult; char recvbuf [DEFAULT_BUFLEN]; int recvbuflen = DEFAULT_BUFLEN; // inizializza Winsock iResult implica WSAStartup (MAKEWORD (2,2), & wsaData); if if (iResult! implica 0) printf ("Errore durante l'avvio di WSAS a causa di un errore:% e n", iResult); Ritorno 1; ZeroMemory (& recensione, sizeof (revisione)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol implica IPPROTO_TCP; hints.ai_flags = AI_PASSIV; // Risoluzione del server e della porta iResult equivale a getaddrinfo (NULL, DEFAULT_PORT, & hints, & result); se (iRisultato! = 0) printf ("getaddrinfo non è riuscito nel mercato a eseguire l'errore:% d n", iResult); wsacleanup();Ritorno 1; // Crea un SOCKET per connetterti a quei server ListenSocket = plug (risultato-> ai_family, risultato-> ai_socktype, risultato-> ai_protocollo); nel caso in cui (ListenSocket == INVALID_SOCKET) printf ("Errore di offerta fallita del socket:% ld n", WSAGetLastError ()); freeaddrinfo (risultato); wsacleanup (); Ritorno 1; // Configura il socket di ascolto TCP iResult equivale a vincolare (ListenSocket, risultato-> ai_addr, (int) risultato-> ai_addrlen); se (iRisultato == SOCKET_ERROR) printf ("Errore di comunicazione:% d n", WSAGetLastError ()); freeaddrinfo (risultato); presa chiusa (ListenSocket); wsacleanup (); Ritorno 1; freeaddrinfo (risultato); iResult equivale ad ascoltare (ListenSocket, SOMAXCONN); quando (iResult == SOCKET_ERROR) printf ("Elenco degli errori generati:% deb n", WSAGetLastError ()); presa chiusa (ListenSocket); wsacleanup (); ritorno 1; // Accetta il punto vendita ClientSocket = accetta (ListenSocket, NULL, NULL); nei casi in cui (ClientSocket == INVALID_SOCKET) printf ("Accettazione fallita con l'errore:% d n", WSAGetLastError ()); presa chiusa (ListenSocket); wsacleanup (); Ritorno 1; // Il socket del server non è più necessario presa chiusa (ListenSocket); // Ricevi finché il peer non completa la connessione Fare iResult è equivalente a recv (ClientSocket, recvbuf, recvbuflen, 0); se (risultato> 0) printf ("Byte ricevuti:% d n", iResult); // Restituire il tuo buffer al mittente iSendResult equivale a inviare (ClientSocket, recvbuf, iResult, null); in qualsiasi momento (iSendResult == SOCKET_ERROR) printf ("Download fallito insieme all'errore:% d n", WSAGetLastError ()); CloseSocket (ClientSocket); wsacleanup (); Ritorno 1; printf ("Byte inviati:% d n", iSendResult); in caso contrario, in (iResult == 0) printf ("Chiudi connettività ... n"); Vicino a te printf ("recv non riuscito con errore:% m n", WSAGetLastError ()); CloseSocket (ClientSocket); Pulizia WSA (); ritorno 1; per (iRisultato> 0); // Chiudi i saluti quando abbiamo finito iResult equivale allo spegnimento (ClientSocket, SD_SEND); in un caso in cui (iResult == SOCKET_ERROR) printf ("Arresto non riuscito con errore:% n", WSAGetLastError ()); CloseSocket (ClientSocket); Pulizia WSA (); Ritorno 1; // Pulito CloseSocket (ClientSocket); Pulizia WSA (); Restituisce 0;
Aggiornato
Sei stanco della lentezza del tuo computer? Infastidito da messaggi di errore frustranti? ASR Pro è la soluzione per te! Il nostro strumento consigliato diagnosticherà e riparerà rapidamente i problemi di Windows, aumentando notevolmente le prestazioni del sistema. Quindi non aspettare oltre, scarica ASR Pro oggi!
Come dovrei accedere a Winsock?
Apri questo prompt dei comandi perché amministratore.Digita il seguente comando e premi Invio: netsh winsock reset. Il comando dovrebbe restituire destinazioni come le seguenti:Riavvia il tuo computer Windows. Puoi riavviare il tuo computer Windows usando il comando shutdown / r inoltra la riga di comando.
Winsock Source Code
Kod źródłowy Winsock
Code Source Winsock
Código Fuente De Winsock
Winsock-broncode
Código Fonte Winsock
Winsock-Quellcode
Исходный код Винсока
Winsock 소스 코드
Winsock Källkod