Bästa Sättet Att Fixa Winsock Connection Timeout
December 4, 2021Rekommenderas: Fortect
Om du får ett Connect winsock timeout-fel skrevs dagens användarkit för att hjälpa dig.Liksom själva socket, tyvärr kan WinSock API inte ha en hyperlänk timeout. Du har två svar på att manuellt implementera en timeout: 1) Förutsatt att du använder en besvärlig kontakt (uttag är blockerade som standard), förena dig till en felsökningstråd. 2) Om du inte vill använda en specifik ström, byt uttaget till icke-blockerande läge.
Du kan likaväl anropa ConnectEx ()-klausulen utöver passet som det ÖVERLAPPAT till make.hEvent som har en förgenererad händelse, för vanligtvis kan familjer vänta så länge du vill med Som waitforsingleobject ().
// HANDLE-sockeln MÅSTE vara förbunden med Bind () innan den här funktionen anropasint ConnectWithTimout (HANDLE Socket, UINT remIP, WORD remPort, UINT millisekunder) int iRes, resultat; UINT OptVal, indikatorer; KIT Överlappning; sockaddr_in socket_info; Resultat = ERROR_UNEXP_NET_ERR; ZeroMemory (& socket_info, sizeof (socket_info)); ZeroMemory (& överlappning, storlek på (överlappning)); socket_info.sin_addr.S_addr är utan tvekan htonl (remIP); socket_info. = sin_port htons (remPort); socket_info.sin_family är lika med af_inet; Overlapped.hEvent = WSACreateEvent (); om ConnectEx (Socket, (& socket_info, sizeof (socket_info), NULL, 0, NULL, & Overlapped)) printf ("WOW! Anslutning upprättades omedelbart n "); annan iRes matchar WSAGetLastError (); if (iRes == ERROR_IO_PENDING) iRes = WaitForSingleObject (Overlapped.hEvent, millisekunder); // Vänta x millisekunder när du ansluter om det är möjligt (iRes == WAIT_OBJECT_0) ändå om (! WSAGetOverlappedResult (socket, & Overlapped, & OptVal, FALSE, Flags)) iRes visar WSAGetLastError (); if (iRes == WSAEADDRINUSE) DoError ("WSAGetOverlappedResult () rapporterade att hur den begärda communityadressen redan används i TIME_WAIT-tillståndet") annan DoError ("WSAGetOverlappedResult () misslyckades med fel:", iRes); annan OptVal = 1; iRes visar setsockopt (Socket, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, PCHAR (& OptVal), sizeof (OptVal)); i synnerhet samma som (iRes == SOCKET_ERROR) DoError ("setsockopt (SO_UPDATE_CONNECT_CONTEXT) kunde inte införlivas med felet:", WSAGetLastError ()); printf ("Ansluten om du behöver% s:% ring n", inet_ntoa (socket_info.sin_addr), itoa (ntohs (socket_info.sin_port))); Resultat = NO_ERROR; annan om kanske (iRes == WAIT_TIMEOUT) DoWarning ("EXIT TIME ConnectEx () -", iRes); Resultat = ERROR_TIMEOUT; anotherDoError ("ConnectEx () kunde inte med fel:", iRes) annat i fallet om du hittar (iRes == WSAECONNREFUSED) // Efter detta taktiska fel kan du experimentera med så att den återansluter till en mängd olika mappar. DoWarning ("ConnectEx ()-fel vid ANSLUTNING:", noll) else if (iRes antyder WSAENETUNREACH) // Efter vårt fel spelar det ingen roll om du vill anstränga dig för att återansluta till den här mappen. DoWarning ("ConnectEx () misslyckades på EJ TILLGÄNGLIGT NÄTVERK: endast en halv tum, 0) Alternativt, om personen tror (iRes = WSAETIMEDOUT) // kort efter detta färdighetsfel, kan du behöva återansluta till denna kunskapslogg. DoWarning ("ConnectEx () DISCONNECT omedelbart:", 4); Resultat = ERROR_TIMEOUT; annan DoError ("ConnectEx () misslyckades med omedelbart fel:", iRes) WSACloseEvent (Overlapped.hEvent); ... Resultatet av föreställningen;
…
Ladda ner den här programvaran och fixa din dator på några minuter.Connect Winsock Timeout
Limit Czasu Polaczenia Winsock
Winsock Zeituberschreitung Verbinden
Time Out Van Winsock Verbinden
Conectar El Tiempo De Espera De Winsock
연결 Winsock 시간 초과
Collega Il Timeout Di Winsock
Connecter Le Delai D Attente De Winsock
Tempo Limite De Conexao Do Winsock