티스토리 뷰

Software

winsock 에러 코드

2010. 5. 19. 21:26


오류 번호 순서

* 다음과 같은 영어 구절은 WinSock Development Information 페이지의 내용을 사용 드리겠습니다. m (_ _) m
* 일본어 구절은 - WinSock 1.1/2.0 Reference on Web -페이지의 내용을 사용 드린지만, 세월을 거쳐 소멸되어 버린 것 같습니다 (Wayback Machine 아카이브).
* Microsoft는 Windows Sockets Error Codes 페이지에 정보를 제공하고 있습니다.


10000 WSABASEERR No Error
10004 WSAEINTR Interrupted system call 시스템 콜 인터럽트가 발생했다.
WinSock 1.1 블로킹 함수 호출이 WSACancelBlockingCall ()에 의해 중단되었다.
10009 WSAEBADF Bad file number 잘못된 파일 핸들.
소켓 함수에 전달된 파일 핸들 (소켓 핸들)가 잘못되었습니다. (WSAENOTSOCK 동의어 이용)
10013 WSAEACCES Permission denied 액세스가 거부되었다.
/ connect () : 브로드 캐스트 주소에 연결하려고하는 소켓 SO_BROADCAST 옵션이 활성화되어 있지 않다.
/ sendto () : 브로드 캐스트 주소로 보내려고했다 소켓 SO_BROADCAST 옵션이 활성화되어 있지 않다.
/ accept () : 접수하려고 연결 요청이 이미 초과되어 또는 취소되고있다.
10014 WSAEFAULT Bad address 잘못된 버퍼링 주소
함수에 전달된 버퍼를 가리키는 포인터가 잘못된 주소 공간을 가리키고있다. 또는 버퍼의 크기가 너무 작습니다.
10022 WSAEINVAL Invalid argument 잘못된 인수가 전달되었다.
/ listen ()를 호출하지 않고 accept ()를 호출했다.
/ 바인딩 정의된 소켓에 bind ()하려고했다.
/ listen ()에서 수신 대기중인 소켓에서 connect ()하려고했다.
/ 함수에 전달된 매개 변수에 잘못된 값이 포함되어있다.
10024 WSAEMFILE Too many open files 사용중인 소켓의 수가 너무 많습니다.
동시에 사용할 수있는 소켓의 최대에 달해 새로운 소켓을 만들 수 없다.
10035 WSAEWOULDBLOCK Operation would block 작업이 차단된다.
논부롯킨구모도 소켓 함수를 호출하므로 함수는 즉시 반환했다 요청한 작업을 완료할 수 없다.
10036 WSAEINPROGRESS Operation now in progress 이미 블로킹 절차가 실행되고있다.
블로킹 함수가 실행되고 있는지, 서비스가 콜백 함수를 처리하고있다. WinSock에서는 1 개의 프로세스에서 동시에 여러 개의 블로킹 작업을 할 수 없기 때문에 마지막 호출 작업이 완전히 종료 때까지 다음 작업을 시작할 수 없다.
10037 WSAEALREADY Operation already in progress 요청한 작업이 이미 실행 중이거나 실행되었습니다.
/ 취소하려고 비동기 작업이 이미 취소된다.
/ connect () 호출이 이미 마지막 호출하여 연결 과정이다.
10038 WSAENOTSOCK Socket operation on non - socket 지정된 소켓이 잘못되었습니다.
소켓 핸들로 잘못된 값이 소켓 함수에 전달되었다.
10039 WSAEDESTADDRREQ Destination address required 작업을 수행하는 대상 주소가 필요합니다.
/ 연결 주소를 전달하지 않고 connect ()를 호출했다.
/ 대상 주소를 전달하지 않고 sendto ()를 호출했다.
10040 WSAEMSGSIZE Message too long 메시지 크기가 너무 큽니다.
보내거나받을 때 메시지가 기반이되는 프로토콜을 지원하는 최대 메시지 크기를 초과합니다. ioctlsocket () 버퍼 크기를 늘리면 해결할 수있는 것도있다.
10041 WSAEPROTOTYPE Protocol wrong type for socket 소켓은 요청한 프로토콜을 준수하고 있지 않다.
/ socket ()를 호출할 때 지정된 프로토콜 타입 소켓 타입과 맞지 않는다. 메시지 형식 프로토콜 스트림 소켓을 만들려고하는 경우 등.
10042 WSAENOPROTOOPT Bad protocol option 잘못된 프로토콜 옵션.
지정한 소켓 옵션 또는 ioctlsocket () 작업이 그 프로토콜은 지원되지 않는다.
/ 스트림 소켓에 SO_BROADCAST을 사용하려했다.
10043 WSAEPROTONOSUPPORT Protocol not supported 프로토콜이 지원되지 않는다.
지원되지 않는 프로토콜을 지정, 또는 프로토콜을 지원하지 않는 작업을 시도했다.
10044 WSAESOCKTNOSUPPORT Socket type not supported 지정된 소켓 타입이 지원되지 않는다.
10045 WSAEOPNOTSUPP Operation not supported on socket 요청한 작업이 지원되지 않는다.
/ 밴드 외부 데이터를 전송 / 수신하려고했다 소켓 그것이 지원되지 않는다.
/ 비연결 (UDP 등) 소켓 accept ()를 호출했다.
10046 WSAEPFNOSUPPORT Protocol family not supported 프로토콜 패밀리에서 지원되지 않는다.
10047 WSAEAFNOSUPPORT Address family not supported
by protocol family
주소 패밀리가 지원되지 않는다.
10048 WSAEADDRINUSE Address already in use 주소가 이미 사용 중이다.
/ bind ()하려고하는 주소는 이미 다른 소켓에서 사용되고있다. 동일한 로컬 주소를 여러 소켓에서 사용하기 위해서는, SO_REUSEADDR 소켓 옵션이 TRUE로 할 필요가있다.
10049 WSAEADDRNOTAVAIL Can't assign requested address 잘못된 네트워크 주소입니다.
소켓 함수로 전달되는 네트워크 주소에 잘못된 부분이있다.
10050 WSAENETDOWN Network is down 네트워크가 다운합니다.
시스템 네트워크가 어떠한 장애를 일으키고, 기능 정지하기 때문에 요청한 작업을 수행할 수 없다.
10051 WSAENETUNREACH Network is unreachable 지정된 네트워크 호스트에 연결할 수 없습니다.
WSAEHOSTUNREACH 동의어로 사용되고있다.
10052 WSAENETRESET Net dropped connection or reset 네트워크 연결이 중단되었다.
연결 유지를 위하여려고하고있는 연결에 어떤 장애에 대한 시간 초과가 발생 연결이 닫힌.
10053 WSAECONNABORTED Software caused connection abort 네트워크 연결이 중단되었다.
10054 WSAECONNRESET Connection reset by peer 네트워크 연결이 상대방에 의해 삭제됐다.
10055 WSAENOBUFS No buffer space available 버퍼 공간이 부족합니다.
메모리가 부족하여 WinSock이 작업에 필요한 버퍼를 확보할 수 없다. 또는 버퍼를 필요로하는 함수를 호출하면 너무 작은 버퍼를 전달했다.
10056 WSAEISCONN Socket is already connected 소켓이 이미 연결되어있다.
/ 연결중인 소켓에 connect (), listen (), bind () 등의 작업을 수행하려고했다.
/ 연결된 소켓으로 sendto ()를 실행하려고했다.
10057 WSAENOTCONN Socket is not connected 소켓은 연결되어 있지 않다.
/ 연결되지 않은 소켓에서 send (), getpeername () 등의 연결된 소켓을 필요로하는 작업을 시도했다.
10058 WSAESHUTDOWN Can't send after socket shutdown 소켓이 종료된다.
이미 종료되고 송 / 수신이 정지되는 소켓 전송 또는 수신 작업을 수행하려고했다.
10059 WSAETOOMANYREFS Too many references, can't splice 참조 수가 너무 많습니다.
10060 WSAETIMEDOUT Connection timed out 연결 요청이 시간 초과했다.
connect ()를 호출하여 연결을 시도했지만, (상대방의 응답이 없다 등등) 작업이 시간 초과 연결 요청이 취소되었다.
10061 WSAECONNREFUSED Connection refused 연결이 거부되었다.
10062 WSAELOOP Too many levels of symbolic links 루프.
10063 WSAENAMETOOLONG File name too long 이름이 너무 깁니다.
10064 WSAEHOSTDOWN Host is down 호스트가 다운되어있다.
WSAETIMEDOUT 동의어.
10065 WSAEHOSTUNREACH No Route to Host 호스트 경로가 없다.
네트워크 구조에 접근할 수없는 호스트에서 작업을 수행하려고했다. 또는 주소가 잘못되었습니다.
10066 WSAENOTEMPTY Directory not empty 디렉토리가 비어 있지 않다.
10067 WSAEPROCLIM Too many processes 프로세스 수가 너무 많습니다.
/ WSAStartup () : 이미 WinSock을 관리할 수있는 최대 프로세스 개수에 도달하고 작업을 수행할 수 없다.
10068 WSAEUSERS Too many users 사용자의 수가 너무 많습니다.
10069 WSAEDQUOT Disc Quota Exceeded 디스크 할당량을 초과.
10070 WSAESTALE Stale NFS file handle 수행하려고하는 작업은 폐지된다.
10071 WSAEREMOTE Too many levels of remote in path 원격.
10091 WSASYSNOTREADY Network SubSystem is unavailable 네트워크 하위 시스템을 사용할 수 없다.
/ WSAStartup () : 네트워크 하위 시스템을 사용할 수 없거나 제대로 설치되지 않기 때문에 작동하지 않는다.
10092 WSAVERNOTSUPPORTED WINSOCK DLL Version out of range Winsock.dll 버전이 범위 밖에있다.
/ WSAStartup () : 요청한 WinSock 버전은 현재 구현은 지원되지 않는다.
10093 WSANOTINITIALISED Successful WSASTARTUP not yet
performed
WinSock 시스템이 초기화되지 않는다.
WinSock 함수를 실행하려고했지만, WSAStartup ()이 성공적으로 실행되지 않기 때문에 작동하지 않습니다.
10101 WSAEDISCON
시스템을 종료할 때.
연결 상대의 처리에 의해 절단하려하고있다.
10102 WSAENOMORE
데이터는 더 이상 존재하지 않는다.
WSA_E_NO_MORE 동의어.
10103 WSAECANCELLED
작업이 취소되었다.
WSA_E_CANCELLED 동의어.
10104 WSAEINVALIDPROCTABLE
서비스 함수 테이블이 잘못.
10105 WSAEINVALIDPROVIDER
서비스가 무효.
10106 WSAEPROVIDERFAILEDINIT
서비스의 초기화에 실패했다.
10107 WSASYSCALLFAILURE
시스템 호출에 실패했다.
결코 실패하지 않을 것입 시스템 호출이 어떤 이유로 실패했다.
10108 WSASERVICE_NOT_FOUND
서비스가 없습니다.
요청한 서비스가 표준 서비스 아니라 지정된 네임 스페이스에서 서비스를 찾을 수 없다.
10109 WSATYPE_NOT_FOUND
유형을 찾을 수 없다.
10110 WSA_E_NO_MORE
데이터는 더 이상 존재하지 않는다.
/ WSALookupServiceNext () : 정보는 더 이상 존재하지 않는다.
10111 WSA_E_CANCELLED
검색이 취소되었다.
/ WSALookupServiceNext () 서비스 검색 도중에 WSALookupServiceEnd () 처리가 취소됐다.
10112 WSAEREFUSED
작업이 거부되었다.
11001 WSAHOST_NOT_FOUND Host not found 호스트를 찾을 수 없다.
DNS와 같은 이름 확인 서비스가 지정된 호스트를 찾을 수 없었다. 프로토콜 및 서비스를 쿼리 작업에도 반환된다.
11002 WSATRY_AGAIN Non - Authoritative Host not found 지정된 호스트를 찾을 수 없거나 서비스 상태.
11003 WSANO_RECOVERY Non - Recoverable errors :
FORMERR, REFUSED, NOTIMP
복구할 수없는 오류가 발생했습니다.
데이터베이스 검색하는 경우 이름 확인 서비스를 사용할 수없는 것을 의미한다.
11004 WSANO_DATA * Valid name, no data record
of requested type
요청된 형식의 데이터 레코드가 없습니다.
11004 WSANO_ADDRESS * No address, look for MX record

* Note that these are same value (typically, only WSANO_DATA is reported) 


http://www.sockets.com/err_lst1.htm#WSANO_DATA 에서 퍼옴

자세한 오류 설명

Windows 소켓 사양은 각 기능에 대한 오류 정의를 설명합니다,하지만 응용 프로그램에 대한 런타임에 사용자에게 문제를 설명하는 데 사용하는 어떠한 짧은 오류 텍스트를 제공하지 않습니다. 윈도우 소켓 API를 버클리에 analogs이 없습니다 perror () herror () 입력으로 오류 값을 함수 및 출력 각 오류 값 (의 (짧은) 텍스트를 우리가 제 10 장의 대안에 대해, "지원 루틴을") 코드를 보여줍니다. 윈도우 소켓 이후 실질적 버클리 소켓의 복제, 그리고 엄지의 규칙은 "입니다의심, 버클리 연기"우리끼리로 버클리 소프트웨어 배포의 오류 텍스트를 채택할 수도 있습니다.

다른 것들 중, 바로 그게 우리가 여기 일을합니다. 우리의 텍스트를했습니다 Errno BSD와 4.3 매뉴얼 페이지, 빈틈과 치장에 정보를 기입, 정보를 작성. Windows 소켓 오류가 알파벳 순서대로 아래에 나열되어 있습니다 (그들이 교차 번호순 추가 아래에있는 목록에서 참조)이야. 모든 오류 설명을 포함 적어도 :

  • 요약 정보:
    • 오류가 매크로 : 명단 상수로 WINSOCK.H에 정의된
    • 오류 값 : 같은 v1.1 WINSOCK.H에 정의된
    • 간단한 설명
  • 버클리 설명: 텍스트가 이에 상응하는 기술뿐만 아니라) 다른 유닉스 Errno 값을 약간의 입력 4.3 오류 값 (BSD와. 텍스트의 대부분이 "사람이 Errno"유닉스에 명령의 출력에서 비롯됩니다.
  • WinSock 설명 : 버클리 대응, 및 Winsock 오류의 긴 설명에 빠른 비교.
  • WinSock 함수 : 명시적으로 v1.1 Windows 소켓 사양에서이 오류 목록을 함수의 목록입니다.

다른 정보 다른 오류를 사이에 다릅니다. 몇 가지의 유형의 몇 가지 오류 아래 찾을 것입니다 :

  • 마이크로 소프트의 C 설명: 처음 몇 WinSock 오류가 표준 '하고'C에서 수행 오버는 런타임 라이브러리입니다. 일반적으로 그들의 설명은 비슷합니다.
  • 상세 설명: 특정 의미가 일부 WinSock 함수는 몇 가지 오류가 있습니다.
  • TCP / IP를 시나리오 : 에서 TCP / IP 프로토콜 제품군의 네트워크 트래픽에 대한 설명 (예 : TCP를 UDP를,가 ICMP, 제공 ARP, DNS를)를 일반적으로 에러가 발생합니다.
  • 개발자 제안: 상황이 응용 프로그램 개발자가 오류를 피하기 위해 할 수 있습니다.
  • 사용자 제안: 상황이 응용 프로그램 사용자가 추가 오류 상태를 진단하고, 할 수있는 / 또는 그것을 해결.
  • 추가 기능 : 어떤 기능을 그는 Winsock 사양별로 나열 이외 포함할 수 있습니다이 오류를 반환할 수있는 함수의 유형의 일반적인 설명입니다. 또한이 오류와 함께 실패할 수있는 다른 함수의 명시적인 언급을 할 수 있습니다.
  • 참조비슷한 다른 오류 :이 가리 킵니다. 개발자는 비슷하게 참조된 오류를 처리하는 것이 좋습니다.

이 부록의 대부분이 응용 프로그램 개발자, 용이지만 사용자 제안 그 최종 사용자 및 애플 리케이션 지원 담당자는 또한 유용 때 응용 프로그램이 실패하면 찾을 수있는 정보가 포함되어 있습니다. 우리는 문제를 해결 수도 로컬 구성 변경, 네트워크 및 서버 조건 원인이있을 것이 좋습니다. 이 오류 사용자 제안 "사용자 고칠수 오류가 모두 같은 사람입니다"위 목록.

The WinSock 설명TCP / IP를 시나리오 또한 가능한 원인을 설명하고 가능한 해결책을 의미하지는 오류의 자세한 설명이 포함되어 있습니다. 문제를 디버깅에 대한 자세한 내용은 13 장, "디버깅을 참조하십시오."

Errorless 함수

8은 Windows 소켓 API의 46 함수의 모든 "WinSock 함수에서 참조되지 않습니다"다음과 같은 자세한 설명에 나열되어 있습니다. v1.1 WinSock 사양은 이러한 기능에 대한 모든 오류를 나열하지 않습니다. 특히, 이러한 오류가 적게 함수는 바이트 순서 함수 (수 있습니다 () htonl, htons (), () ntohl, 그리고 ntohs ()), 주소 조작 함수 (inet_addr (), 그리고 inet_ntoa) WSAGetLastError ()WSAIsBlocking ().

일부는 이러한 함수 중 어떤 오류 아래 목록에서 자신의 부재를 설명 실패할 수 없습니다. 두 실패할 수도 그들의에서 검색할 수 있습니다 오류 값을 세트 WSAGetLastError () (제 10 이러한 오류가 적게 기능에 대한 자세한 내용), "루틴 지원"을 참조하십시오.

  • 바이트 순서 기능 () htonl, htons (), ntohl() ntohl, 실패할 수 없습니다.
  • WSAGetLastError ()WSAIsBlocking () 실패할 수 없습니다.
  • 주소 조작 함수, inet_ntoa ()inet_addr (), 실패하지 않습니다. 거기에 그들의 실패는 단지 하나의 이유 : 입력 매개 변수가 잘못되었습니다이기 때문에 그러나, 그들은는 Winsock 오류 값을 설정하는 필요가 없습니다. 용 inet_addr ()이것이 전달된 버퍼의 내용이나 버퍼를 자체 수도있다는 뜻이 잘못되었습니다.

Functionless 오류

거기에 50 독특한 WinSock 오류 값의 합계가 있습니다. 값을 WSANO_DATA WSANO_ADDRESS (가 11004) 중복 있으며, 우리는 그들 중 하나를 계산하지 않아도됩니다.

WinSock v1.1 사양은 어떤는 Winsock 함수의 v1.1에서 Windows 소켓 사양에 33을 50 오류 ascribes. 13 오류가있다 "<없음>"그들을 제작할 수 WinSock 함수의 목록 옆에. 그것도 사용되지 않습니다 오류 값 중 약 1 분기이야!

일부는 이러한 소홀히 오류 값들을 일찍 ""다른 WinSock 구현에 미세한 해상도를 제공하는 언급 속합니다. 어떤 경우에는 이러한 오류가 플랫폼에 따라 다릅니다. 예를 들어, 당신이 얻을 수 WSAEBADF ... 대신에 WSAENOTSOCK 어떤 소켓을 제공하고 검정 고시를 처리할 파일 시스템에. 하지만 이러한 함수 적게 오류의 대부분은 단순히 밖으로 장소되며 이것은 v1.1 사양에 존재로서 그들이 Windows 소켓 API에 대한 부적 절한 있습니다. 당신이 그들을 만날 가능성이있다. 그러나 그건 아니 말 당신은 아직 준비가 안됩니다.

우리가 전에 지적한 것처럼, 응용 프로그램이 언제든지 오류가 발생할 준비를해야합니다. 사양은 함수에 대한 오류를 나열하지는 않지만, 그것을 위해 수 없습니다. 사실, 당신은는 Winsock 구현이 다른 오류를 반환하는 경우 혜택을받을 수 경우에. 목록에없는 오류의 발생이 추가 세부 사항을 제공할 수 있습니다. 이게 도움이 수 (또는 지원 담당자)에 제로에 잘못되면 응용 프로그램이 실행되는 문제에 뭐가있다.

일부 WinSock 구현은 이러한 오류를 부적절하게 사용하는,하지만 그들은 특별한 의미가있다. 그들은 거기에 없다 WinSock 오류 이에 상응하는 금액의 비정상적인 오류 조건을 신호. 불행히도, 이러한 오류가 당신이 WinSock 공급자에게 문의해야 의미 찾아보세요.

오류 설명 목록

<no 매크로 available> (0) 오류


WSABASEERR (10000) 오류

버클리 설명 : 아니 동등한.

WinSock 설명 : 없음 오류입니다.

상세 설명 : 거기에 때때로 함수를 실패하고 오류 값으로 이것을보고 적어도 하나 WinSock 구현, 그럼에도 함수 성공했습니다. 당신은 단순히 그것이 오류가 발생하면 무시한다.

WinSock 함수 : <없음>


WSAEACCES (10013) 권한이 거부되었습니다.

버클리 설명: 시도 방법은 파일에 액세스 권한에 의해 숨겨진 파일에 액세스하려고했습니다.

마이크로 소프트의 C 설명 : 권한이 거부되었습니다. 파일의 권한 설정이 지정된 액세스를 허용하지 않습니다. 이 오류는 시도가 파일을 (또는 액세스, 일부 경우되었다 의미하고, 파일의 속성과 호환되지 않는 방식으로 디렉터리). 예를 들어, 오류가 시도가 열려 있지 않은 파일에서 읽을 만든 경우, 기존의 읽기 전용 또는 쓰기 대신 파일 디렉토리를 열 수 있도록 파일을 엽니다 발생할 수 있습니다. MS - DOS를 버전 3.0 이상에서 EACCES 또한 잠금 또는 공유 위반을 나타낼 수 있습니다. 이 오류는 시도 파일이나 디렉토리 또는 기존 디렉터리를 제거하기 위해 이름을 바꾸려면에 발생할 수 있습니다.

WinSock 설명: 버클리와 같음.

상세 설명:

() 보내 & sendto를 (): 요청하신 주소는 브로드 캐스트 주소는하지만 적절한

플래그 (설정 대상이 아닌 당신이 setsockopt 전화하지 않았어 즉, (SO_BROADCAST)).

WinSock 함수: () 보내, sendto를 ()

추가 기능: setsockopt () 입력 매개 변수로 소켓 (또는 핸들 파일) 소요 및 기능.


WSAEADDRINUSE (10,048) 주소를 이미 사용 중입니다.

버클리 설명: 각 주소를 하나만 사용이 정상적으로 허용됩니다.

WinSock 설명: 버클리와 같음. 의 "주소"그들 참조, 일반적으로 지역의 "소켓의 이름을"로, 이는 3 - 튜플들로 이루어진 네트워크입니다 말합니다 : 프로토콜, 포트 번호와 IP 주소입니다.

개발자 제안 : 부르지 마 바인딩 () 클라이언트 응용 프로그램입니다. 대신, 네트워크 시스템은 로컬 포트를 (거의 응용 프로그램 프로토콜 바인딩하는 포트 번호 범위가 특정 포트 번호 또는 클라이언트를 필요로 할당)하자. 반면, 당신은 setsockopt (SO_REUSEADDR) 단일 응용 프로그램에서 로컬 주소를 중복 허용 부를 수 있지만,이 kludgy 접근법이다 (우리는) 그것을하지 않는 것이 좋습니다 즉.

사용자 제안 : 두 같은 기계에 서버 애플 리케이션의 동일한 종류의 실행하지 마세요. 당신은 FTP 서버가 두 개의 응용 프로그램을 실행하려고하면 예를 들어,이 오류가 발생합니다. 이 경우에는 두 번째 응용 프로그램이 WSAEADDRINUSE와 함께 실패합니다.

Winsock을 기능 : 바인딩 (), () 연결, () 들어봐, FD_CONNECT


WSAEADDRNOTAVAIL (10,049) 할당 주소를 요청 수 없습니다.

버클리 설명: 시도가이 컴퓨터에없는 주소로 소켓을 만드는 방법에서 일반적으로 발생합니다.

WinSock 설명: 일부는 버클리와 동일. 그것은 의미 "주소"는 원격 소켓의 이름 (프로토콜, 포트 및 주소). 이 오류는 sin_port 값을 0 sockaddr_in 구조에 대한 발생 () 연결 또는 sendto를 ().

버클리에서이 오류는 때 로컬 소켓을 (로컬 주소와 포트 번호를 할당 이름하려고하는) 발생 바인딩 ()하지만, Windows 소켓이 오류를 돌리다하지 않습니다 바인딩 ()어떤 알 수없는 이유.

개발자 제안: 가정 바인딩 () 이 오류와 함께 실패합니다. 네트워크 시스템은 로컬 IP 주소를 참조 INADDR_ANY로 sockaddr_in 구조 입력의 sin_addr 필드에 기본값을 지정하자 바인딩 (). 반면, 당신은 호출하여 로컬 IP 주소를 확인할 수 있습니다 gethostname () 다음 gethostbyname ().

WinSock 함수: () 연결, sendto를 (), FD_CONNECT

추가 기능: 그것은 v1.1 사양은 기능이 오류를 돌리다하지 않는 이상한 것 같다 바인딩 ().


WSAEAFNOSUPPORT (10,047) 주소 가족은 프로토콜 패밀리에서 지원되지 않습니다.

버클리 설명: 주소는 요청된 프로토콜과 호환되지 않습니다 사용되었습니다. 예를 들어, 당신은 반드시 ARPA 인터넷 프로토콜과 NS의 주소를 사용할 수있을 거라고 기대 안됩니다.

WinSock 설명: 버클리 동일 보태라. 오류가 발생합니다 소켓 () 소켓 유형 (프로토콜 소요 함수) 및 입력 매개 변수로 가족을 해결합니다.

또한 소켓을 입력 매개 변수로 sockaddr 구조를 받아 처리할 함수가 발생합니다. 소켓이 이미 형식 (프로토콜)를 가지고 각 sockaddr 구조는 주소 패밀리 필드의 형식을 정의할 수있다. 주소 가족 sockaddr에서 참조하는 경우에는 기능은 WSAEAFNOSUPPORT와 함께 실패 참조된 소켓의 프로토콜과 호환되지 않습니다.

그 목록에 오류가 아니므로이 오류는 분명히 또한 "프로토콜 가족 지원하지"), WSAEPFNOSUPPORT의 자리를 (을 의미 걸립니다 소켓 () v1.1 WinSock 사양입니다.

WinSock 함수: 바인딩 (), () 연결, sendto를 (), 소켓 (), FD_CONNECT

참조 : WSAEPROTOTYPE


WSAEALREADY (10,037) 작업 진행 이미.

버클리 설명: 작업이 이미 진행중인 작업을했다 비 개체에 대한 차단을 시도했습니다.

WinSock 설명: 버클리 소켓과는 달리, WinSock WSAEALREADY에서 비동기식 작업은 이미 취소되었습니다 취소하려 것을 의미합니다. 그러나, WSAEALREADY과 WSAEINVAL 사이에 약간의 차이 WinSock DLL이 비동기 작업이 취소되었습니다 사이에 하나의 유효한 절대 그 차이를 말할 수 없어 이후에요.

WinSock 함수: WSACancelAsyncRequest ()

추가 기능 : 버클리 소켓 () 연결 반환 이후의 호출이 오류를 비 블로킹 소켓에 대한 초기 호출 후에. 그러나 일부 WinSocks가 WSAEINVAL와 당신이 호출은 실패 () 연결 두 번째 시간 (또는 그 이후) 비 블로킹 소켓을 클릭합니다.


WSAEBADF (10009) 잘못된 파일 설명.

버클리 설명 : 파일 설명자 인수가 범위를 초과, 누군진 열린 파일 또는이 (쓰기)의 요청을 읽기를 추천 전용 (읽기 쓰기 위해 열려 있었 파일되었다).

마이크로 소프트의 C 설명: 잘못된 파일 번호입니다. 지정된 파일 핸들에 유효한 파일 값을 처리하지 않거나 열린 파일을 참조하지 않는다; 시도하거나 파일이나 장치를 읽기 전용 액세스 (또는 그 반대)에 오픈에 쓸되었다.

WinSock 설명: WinSock에 해당 없음. 의 BSD 소켓은 파일 핸들에 해당되기 때문에 그러나, 일부 Windows 소켓 플랫폼은 일부 파일과 소켓 검정 고시 핸들을 제공합니다. 이 경우, WSAEBADF 오류가 WSAENOTSOCK 오류와 같은 의미가 있습니다.

WinSock 함수 : <없음>

추가 기능: 입력 매개 변수로 소켓 (또는 핸들 파일) 소요 어떤 함수

참조 : WSAENOTSOCK


WSAECONNABORTED (10,053) 소프트웨어가 연결 중지를 일으켰습니다.

버클리 설명: 연결 중단은 내부 호스트 컴퓨터에 발생했다. 거기에 소켓의 대기열에 공백을 추가하고 소켓 연결을받을 수 있기 때문에 소프트웨어가 연결 중단을 초래했습니다.

WinSock 설명: 일부는 버클리와 동일. 오류는 로컬 네트워크 시스템에 연결을 중단 발생할 수 있습니다. Winsock은 데이터 재전송이 (수신기는 데이터를 데이터 스트림 소켓에 보낸 사실을 인정 결코 실패 후 설립 연결을 중단하는 경우)가 발생합니다.

TCP / IP를 시나리오: 로컬 시스템이 데이터에 대한 (ACK는) nowledgement를받지 않으면 연결이 시간 초과됩니다 보냈습니다. (FIN) 분에 TCP 패킷 (그리고 경우에도 지느러미 ACK'd는 ACK'd 아니라면 그것은 또한 5 달러는 반환하지 않은 경우, 그것은 결국) 제한 시간 초과됩니다 것입니다.

사용자 제안 : 에는 여러 가지가 확인, 그게 왜 오류가 발생 식별하는 데 도움이 될 수 있습니다. 기본적으로, 당신은 어디에 문제가 발생 파악 싶어요.

  • 당신이에 연결되었던 원격 호스트를 Ping. 그것은 응답하지 않는 경우, 오프라인 또는 것일 도중에 네트워크 문제가있을 수 있습니다. 그것은 응답 않는 경우, 다음이 문제는 (지금 다시 연결 수 있도록), 또는 당신은 제거 수도에 연결했던 서버 응용 프로그램 (다시 연결할 수 없을 수도 있습니다) 과도 하나 있었을 수도 있습니다.
  • 로컬 호스트에 대해 Ping을 아직도 (작동 여러분의 로컬 네트워크는 직렬 연결하는 경우에, 다음 단계 참조) 확인
  • 로컬 라우터 주소를 Ping. 당신은 직렬 연결하는 경우, 해당 지역의 라우터가 처음 SLIP 또는 PPP는와에 로그 인한 호스트의 IP 주소입니다.
  • (만약 당신이 아는 당신이에 연결되어 있던 호스트와 같은 서브넷에있는 호스트를 Ping을 한). 이것은 대상 네트워크가 작동하는지 확인합니다.
  • 시도 "traceroute"당신이 연결된 있던 호스트로. 당신은 원격 끝에 라우터 주소를 알지 못한다면 이것은 너무 많이 공개하지 않습니다, 그러나 그것은 문제가 어딘가에 길을 따라하는 경우에는 식별하는 데 도움이 될거야.

WinSock 함수: recv (), recvfrom (), sendto를 (), FD_CLOSE

추가 기능 : () 보내 또한 WSAECONNABORTED와 함께 실패할 수 있습니다. 입력 매개 변수로 소켓을 소요하는 모든 기능 - 제외 가까운 소켓 ()- 잠재적으로이 오류와 함께 실패할 수 있습니다.

참조: WSAECONNRESET, WSAENETRESET, WSAETIMEDOUT


WSAECONNREFUSED (10061) 연결이 거부됨.

버클리 설명: 대상 컴퓨터가 적극적으로 그것을 거절했기 아니 연결이 만들 수 있습니다. 비활성 외국 호스트에있는 서비스에 연결하도록 노력이 일반적으로 발생합니다.

WinSock 설명: 버클리와 같은

TCP / IP를 시나리오:는 TCP 용어 (데이터 스트림 소켓)에서, 그것은)는 TCP가 SYN 패킷을 보내 시도를 연결 (의미 대상 호스트가 호스트에 리셋을 (는 TCP RST 패킷) 반환하여 답변을 일으켰습니다. 응용 프로그램이 호스트에 데이터 그램 소켓 "을 듣고이없는 / 포트를 UDP 패킷을 보내는 경우"네트워크 시스템은 ICMP 포트에 연결할 수 패킷을 다시 전송하여 응답할 수 있습니다

사용자 제안: 어느 잘못 호스트, 또는 접촉하려는 서버 응용 프로그램으로 실행되지 않습니다 갔다. 당신이 사용하고있는 목적지 주소를 확인합니다. 당신은, 그것이 올바른 주소로 해결 했어 호스트 이름을 사용한 경우? 호스트 이름 확인을 사용하는 경우 귀하가 이전 주소로 해결 오래된 지역 hosttable, 그것은 가능. 그것은 또한 그 지역 서비스 파일이 (그렇게 될 것 같진 않지만) 잘못된 포트 번호가 있습니다.

당신은 원격 시스템은 로컬 네트워크 통계를 확인하여 연결 시도를 거부 확인할 수 있습니다. 확인 네트워크 시스템 (WinSock 구현) 네트워크 통계를 보여주는 유틸리티가 있습니다. 당신은 당신의 TCP 재설정 또는 ICMP 포트에 연결할 수 패킷을 연결하려고 할 때마다 수신 확인하기 위해 이것을 사용할 수 있습니다.

제안 개발자: 당신이 네트워크 분석기를 사용할 경우, 당신은 신속하게 확인하실 수 있습니다 대상 포트 번호와 호스트 주소가 당신이 기대하는 경우. 서버 끝에, 당신은 귀하의 서버가 실행 중인지 확인하고 올바른 포트 번호에서 수신 대기 네트워크 시스템 유틸리티에 BSD의 "netstat -"명령과 비슷한 사용할 수 있습니다.

그것은 하나 이상의 모호한되기 때문에 이것은 가장 빈번한 오류의 하나는 최상의 발생할 수 있습니다. 단이 오류에 대해 몇 가지 가능한 원인은 :

  • 당신은 잘못된 포트에 연결하려. 이것은 일반적인 문제입니다. 당신은 전화주세요 htons () 네트워크에 sin_port 필드 sockaddr 구조에 할당하기 전에 바이트 순서를 상수 값을 변환합니다.
  • 잘못 대상 호스트 주소에 연결하려고
  • 서버 응용 프로그램은 대상 호스트에서 실행되고 있지 않습니다
  • 서버 응용 프로그램이 바로 그 포트에서 수신되지 않습니다. 서버 응용 프로그램이 호출해야 할 수 있습니다 htons () 네트워크에 sockaddr 구조에서 바이트 순서를 포트를 번역합니다.

WinSock 함수: 데이터 스트림 소켓과 : () 연결FD_CONNECT WSAAsyncelect () 알림 메시지.

추가 기능 : 데이터 그램 소켓으로 : () 보내 또는 sendto를 (), 또는 FD_READ.


WSAECONNRESET (10054) 피어에서 연결을 재설정.

버클리 설명: 연결이 강제로 피어에 의해 폐쇄되었습니다. 원격 소켓 시간 초과 또는 재부 팅으로 인해에있는 연결의 손실이 정상적으로 발생합니다.

WinSock 설명: 버클리와 같음. 데이터 스트림 소켓에 연결이 다시 설정되었습니다. 이 재설정은 로컬 네트워크 시스템이 아니면 연결 오류를 감지하면 그것의 TCP 측면에서 원격 호스트 (로부터받은 것에 의해 생성되는 수, 원격 호스트)이 RST 패킷을 보냈습니다. 이 오류는 또한 데이터 그램 소켓에, 응용 프로그램이 호스트에, 어떤 ICMP 포트에 연결할 수있는 응답하여 그것을 거절의 UDP 데이터 그램을 보낼 경우 예를 들어,이 오류가 발생할 수 있습니다.

사용자 제안: 일부 네트워크 시스템 명령을 통계를보고있다. 이 경우, 그것은 가능한 TCP RST 패킷을 수신하거나, ICMP 포트에 연결할 수 패킷의 개수를 확인할 수 있습니다. WSAECONNABORTED 아래에 다른 제안 사항을 참조하십시오.

WinSock 함수: recv (), recvfrom (), () 보내, sendto를 (), FD_CLOSE

추가 기능 : / O는 네트워크에서이 오류를 생성할 수있는 내가 않는 작동합니다. 유난히 결석 위의 현재 기능 목록에서 두 가지 기능은 종료 ()가까운 소켓 ().

참조 : WSAECONNABORTED, WSAENETRESET, WSAETIMEDOUT


WSAEDESTADDRREQ (10,039) 목적지 주소가 필요합니다.

버클리 설명: 필요한 주소가 수술에서 소켓에서 생략되었습니다.

WinSock 설명: 버클리와 같음. 설명은 간단하고 분명하다 : 순서에 따라 목적지 주소로 보내거나 연결, 당신은 목적지 주소를 제공해야합니다. sin_addr은 INADDR_ANY 경우에 이러한 오류가 발생합니다 (예 : 0) sockaddr_in 구조로 전달에 오래 sendto를 (). 참고 : 비록 () 연결FD_CONNECT 또한이 오류가 나열된 설명서를 특별히 상태 INADDR_ANY는 목적지 주소로 전달되는 경우 WSAEADDRNOTAVAIL가 적절합니다.

사용자 제안 : 당신은 대상 호스트 이름을 입력하셨습니까? 그렇다면, 응용 프로그램 (WSATRY_AGAIN에서 자세한 내용은 제안을 참조)에 문제가 이름을 해결했다 할 수도 있습니다.

개발자 제안 : 당신이 미리 그것을 감지하지 않는 경우 (실패 후에 호출을 위해 예 inet_addr () 또는 gethostbyname ()당신이 그것을 통과하기 전에), 그럼 간단하게 제로에 대한 귀하의 주소 값을 테스트 sendto를 ().

WinSock 함수: () 연결, sendto를 (), FD_CONNECT


WSAEDQUOT (10,069) 디스크 할당량을 초과했습니다.

버클리 설명디스크 블록의 사용자의 할당량, 또는 소유자의 그룹 아이디의 할당에 지친 때문 : A는 일반 파일에 쓸, 디렉터리 또는 심볼릭 링크, 또는 디렉터리 항목의 창조의 창조에 실패 새로 만든이 실패 파일이 있기 때문에 사용자의 inodes의 할당량이 모두 소진되었습니다.

WinSock 설명: 아니오 동등한. 이것은)은 네트워크 관련 아날로그 (이하 "소유자의 그룹 아이디"참조가 네트워크 파일 시스템 항목을 참조하십시오 수도 있지만했습니다.

WinSock 함수: <없음>


WSAEFAULT (10014) 잘못된 주소.

버클리 설명: 시스템 호출의 인수를 사용하려고 시도에서 잘못된 주소를 발견했습니다.

WinSock 설명: 버클리 동일 보태라. 특히, WinSock v1.1 명세 메모 버퍼의 길이가 너무 작은 경우이 오류가 발생합니다. 예를 들어, sockaddr 구조체의 길이는 sizeof (sockaddr을 구조체에 해당되지 않습니다.) 그러나, 그것은 또한 응용 프로그램이 잘못된 포인터 값을 전달 발생합니다.

개발자 제안 : 항상 메모리 할당에서 확실히 그것은 성공해야 반환 값을 확인하십시오. 항상 충분한 공간을 할당해야합니다.

WinSock 함수: () 동의, 바인딩 (), () 연결, gethostname (), getpeername (), getsockname (), getsockopt (), recvfrom (), () 보내, sendto를 (), setsockopt () 버퍼 길이가 너무 작은 경우.

추가 기능 : 의 입력 매개 변수로 포인터를 소요하는 모든 함수 : inet_addr (), inet_ntoa (), ioctl소켓 (), gethostbyaddr (), gethostbyname (), getservbyname (), getservbyport (), WSAAsyncGetHostByName (), WSAAsyncGetHostByAddr (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber, WSAAsyncGetServByName (), WSAAsyncGetServByPort (), WSASetBlockingHook ()


WSAEHOSTDOWN (10,064) 호스트가 다운.

버클리 설명: 대상 호스트가 다운 되었기 때문에 소켓 작업이 실패했습니다. 소켓 작업이 죽은 숙주가 발생했습니다. 로컬 호스트에서 활동을 네트워킹이 시작되지 않았습니다.

WinSock 설명: 아니오 동등한. WinSock의 TCP / IP를 구현 최소한으로 유일한 시간 Winsock은이 오류 - 사용할 수 있습니다 - 그것은 다른 오류가있는 함수가 실패하면 (예를 들어, WSAETIMEDOUT).

WinSock 함수: <없음>

참조: WSAECONNRESET, WSAENETRESET, WSAECONNABORTED WSAETIMEDOUT


WSAEHOSTUNREACH (10065) 경로가 없음 호스트.

버클리 설명: 소켓 작업이 액세스할 수없는 호스트를 시도했습니다.

WinSock 설명: 버클리와 같음. 버클리와는 달리, 그러나, Winsock은 v1.1 어떤 기능이 오류를 돌리다하지 않습니다. 장소가, Winsock은 오류가 사용 그게 있음, 독점적으로 WSAENETUNREACH.

TCP / IP를 시나리오거기에 기본 경로가없는 경우 : BSD와 호환 구현에서, 로컬 네트워크 시스템이 오류를 생성 구성. 일반적으로하지만, Winsock이 때 라우터를 대신에서 WSAEHOSTUNREACH "호스트에 연결할 수"ICMP 메시지를받습니다 WSAENETUNREACH 생성합니다. 그것은 아래)을 제공 ARP 요청 (대상 호스트를 의미 수도에 대한 응답을받지 않았기 때문에 ICMP 메시지는 라우터가 전달할 수 없습니다 IP 데이터 그램, 어쩌면 의미합니다.

사용자 제안 : 자세한 내용은 WSAENETUNREACH보기

WinSock 함수: <없음>

추가 기능: I / O를 네트워크를 않는 기능

참조: WSAENETUNREACH


WSAEINPROGRESS (10,036) 작업 진행 지금.

버클리 설명: 같은 시간이 오래 완료하는 데 (걸리는 작업 () 연결) 비 블로킹 소켓을 시도했습니다. (ioctl () 참조).

WinSock 설명:이 오류의 Windows 소켓 정의가 아주 다른 버클리에서. Winsock은 단지 하나의 블로킹 작업이 뛰어난 작업 당 (또는 스레드), 그리고 될 그 혹은 다른 소켓)이 함수는 WSAEINPROGRESS 오류와 함께 실패 다른 어떤 함수 호출 (지 여부는 언급 만들면 수 있습니다. 그것은 거기에 차단하는 뛰어난 작업을 의미합니다.

또한 가능성 Winsock은이 오류를 응용 프로그램이 호출 후 반환 수도있다 () 연결 비 블로킹 소켓에 두 번째 시간 (즉, 이후 WSAEWOULDBLOCK와 함께 실패했습니다 처음) 보류중인 연결이있는 동안. 이것이 바로 버클리 소켓에서 발생합니다.

개발자 제안 : 핸들이 아닌 치명적인 오류가 있습니다. 블로킹 소켓을 사용하거나 차단하는 함수이 오류를 처리합니다 호출하는 모든 응용 프로그램입니다. 당신이 호출하여 오류를 피하기 위해 시도할 수 있습니다 WSAIsBlocking () 모든 WinSock 함수 호출을하기 전에.

WinSock 함수 : ()에 동의, 바인딩 (), 가까운소켓 (), () 연결, gethostbyaddr (), gethostbyname (), gethostname (), getpeername (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), getsockname (), getsockopt (), ioctl소켓 (), () 들어, recv (), recvfrom (), () 선택, () 보내, sendto를 (), setsockopt (), 종료 (), 소켓 (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (), WSAAsyncSelect (), WSACancelAsyncRequest (), WSACleanup (), WSASetBlockingHook (),

추가 기능: 모든 WinSock 함수 제외 WSACancelBlockingCall (특히, WSAStartup ()WSAUnhookBlockingHook ()).


WSAEINTR (10004) 중단 함수 호출.

버클리 설명 : SIGINTor SIGQUIT와 같은 비동기 신호 ()이 프로세스에 의해 interruptible 기능을 실행하는 동안 잡혔다. 신호 처리기는 정상적인 수익을, 중단 함수 호출에서 오류 조건을 가져 왔으니 것을 수행하면됩니다.

WinSock 설명 : 하지 버클리로 동일하지만 비슷. WinSock에서는이 작업을 블로킹 호출에 의해 중단되었습니다 뜻 WSACancelBlockingCall.

개발자 제안 : 당신은 어떤 기능을 참조하는가 소켓을 차단하거나, 어떤 통화 기능을 차단하려면 사용자가 차단 호출을 취소할 수 있도록하는 경우에이 오류를 처리할 준비를해야합니다. 여부는 치명적인 오류 또는 비 치명적인 오류로 처리하는 응용 프로그램과 문맥에, 그래서 그것은 전적으로 당신에게 결정하는 따라 달라집니다.

WinSock 함수 : 모든 함수는 블로킹 작업 능력이 오류를 반환할 수 있습니다 : () 동의, 가까운 소켓 (), () 연결,gethostbyname (), gethostbyaddr (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), recv (), recvfrom (), () 선택, () 보내, sendto를 ()

추가 기능 : 어떤 WSAAsyncGetXByY () 데이터베이스 함수의 비동기 알림 메시지에 이전 호출 전화로 취소되었습니다 나타내기 위해이 오류를 반환할 수 있습니다 WSACancelAsyncRequest ().


WSAEINVAL (10,022) 잘못된 인수입니다.

버클리 설명 : 일부 잘못된 인자 (예를 들어,에 잘못된 수준을 지정할 제공된 setsockopt () 기능).

마이크로 소프트의 C 설명: 잘못된 인수입니다. 잘못된 값이 하나 인수의 함수에 주어졌다. 예를 들어, 값이 기원 때 fseek를 호출에 의해 위치의 파일 포인터 ()는 파일의 시작 전에 주어진.

WinSock 설명: 버클리 & 마이크로 소프트와 마찬가지로 C는, 일반적인 의미 그 응용 프로그램이 함수 호출에 잘못된 입력 매개 변수가 전달됩니다. 오류뿐만 아니라 콘텐츠에 대한 가치 (이 때 구조에 대한 포인터가 잘못되었습니다하거나 구조의 값이 필드가 올바르지 않습니다) 예 발생할 수 있습니다 말합니다. 어떤 경우에는 그것은 또한 소켓의 입력 매개 변수의 현재 상태를 말합니다.

상세 설명 (소켓 관련성이 높은 상태):

() 동의: () 들어봐 전에 호출 아니 었어 () 동의

바인딩 (): 소켓은 이미 주소에 바인딩

getsockname (): 소켓과 함께 묶여 있지 바인딩 ()

() 들어봐: 소켓과 함께 묶여 있지 바인딩 () 또는 이미 연결되어 있습니다.

recv () & recvfrom (): 소켓 (Dgram)를 바인딩되지 또는 아직 (스트림), 또는 요청한 길이 연결되지 제로 (여부 길이가 32K를>입니다

인정 음수가 아닌 값으로는 불분명, 그래서) 그들을 사용하지 않는합니다.

() 보내 & sendto를 (): 소켓이 (Dgram)를 바인딩되지 또는 아직 (스트림)를 연결하지

v1.1 사양은 또한에 대한 자세한 설명을했다 () 연결 기능을 말합니다 : "소켓은 이미 주소에 바인딩하지." 해당 텍스트는 말이 안 오타입니다. 그것을 무시하십시오. WSAEINVAL에 대한 표준 의미가 적용되는 () 연결 (잘못된 인자).

WinSock 함수 : () 동의, 바인딩할 (), getsockname (), ioctl소켓 (), () 들어봐, recv (), recvfrom (), () 선택, () 보내, setsockopt (), 종료 (), WSAStartup (), WSAAsyncSelect (), WSACancelAsyncRequest (), WSACancelBlockingCall, FD_CONNECT

추가 기능: 유효하지 않은 (즉, 수도 범위 또는 특정 값을 입력 매개 변수를 필요 모든 WinSock 함수)이 오류를 반환할 수 있습니다.


WSAEISCONN (10,056) 소켓이 이미 연결되어 있습니다.

버클리 설명: 연결 요청이 이미 연결된 소켓에되었다, 또는, sendto를 () 또는 () 소켓 연결 대상을 이미 연결된 지정된 요청 sendmsg.

WinSock 설명: 버클리로서, Winsock은, 그리고 sendmsg을 () 함수를 지원하지 않아 일부 WinSock 구현 너무 엄격한로 ""분리 그램 소켓과 애플 리케이션을 요구 - 전화로하지 않습니다를 제외하고 같은 () 연결 AF_INET NULL은 대상 주소 : INADDR_ANY (0.0.0.0), 그리고 포트 0 -로 데이터 그램을 리디렉션하기 전에 sendto를 () 또는 () 연결. 데이터 스트림 소켓에서, 일부 응용 프로그램은 비 블로킹 소켓 호출이 오류를 사용하여 () 연결 일부 WinSocks가 WSAEINVAL과 이후에 실패 이후이 권장되지 않습니다 있지만 때 연결 시도가 완료되면 감지 () 연결 호출합니다.

개발자 제안: 응용 프로그램이 더 많은 휴대용하게 : 데이터 그램 소켓을 사용하지 않는과 () 연결sendto를 () 응용 프로그램에서 동일한 데이터 그램 소켓에 항상 ""호출되기 분리 () 연결 두 번 이상. 데이터 스트림 소켓으로 부르지 말아요 () 연결 1 회 이상 (사용 () 선택 또는 WSAAsyncSelect () 완성) 연결을 감지합니다.

WinSock 함수 : () 들어, FD_CONNECT

추가 기능: () 연결, sendto를 ()


WSAELOOP (10,062) 심볼릭 링크가 너무 많습니다 레벨.

버클리 설명: 경로 조회가 이상 8 심볼릭 링크를 참여. 너무 많은 링크 경로를 번역 발생했습니다.

WinSock 설명: 아니오 동등한

WinSock 함수: <없음>


WSAEMFILE (10024) 너무 많은 파일이 열려.

버클리 설명: 너무 많은 파일이 열려. 아니 과정은 한 번에 파일 설명의 시스템 정의 숫자보다 더 많은 개방이있을 수 있습니다.

마이크로 소프트의 C 설명: 너무 많은 파일이 열려. 더 이상의 파일 핸들을 사용할 수 있으므로 더 이상의 파일을 열 수 있습니다.

WinSock 설명: 버클리 & 마이크로 소프트와 마찬가지로 C 나지만, 소켓에 대한 참조가 아닌 파일에이 (비록 v1.1 사양에 대한 설명은 "더 이상 파일 설명이 없습니다"라고 대답) 처리합니다. 총칭, 오류가 네트워크 시스템 밖으로 소켓의 핸들을 실행하는 것을 의미합니다.

사용자 제안 : 그것은 너무 많은 Winsock 응용 프로그램을 동시에 실행하는 것을 의미하지만, 대부분의 네트워크 시스템은 많은 소켓을 가지고 이후이 가능성은 사용할 수 처리합니다. 응용 프로그램이 열리면 자주 소켓을 닫습니다 그것은 또한, 그러나 발생할 수 있습니다 제대로 (소켓을 닫지 않기 때문에 그것은 그들이 열려, "고아")으로 단풍. 고아 소켓을 복구하려면 응용 프로그램을 닫는 시도할 수 있으며 열린 소켓을 복구하는 방법 다시 시작했고, 당신은이는 Winsock DLL의) 강제로 내릴 모든 Winsock 응용 프로그램을 (종료 할 수 있습니다.

WinSock 함수: 새 설명을 할당하는 모든 기능 : () 동의, () 들어, & 소켓 (). v1.1 사양은 또한 목록 () 연결, 그것은 설명을 할당할 수 있지는 않지만.


WSAEMSGSIZE (10040) 메시지가 너무 깁니다.

버클리 설명: 메시지가 소켓에서 보낸 내부 메시지 버퍼 또는 다른 네트워크 제한보다 큽니다.

WinSock 설명: 버클리와 유사합니다.

상세 설명 :

recv ()recvfrom ()당신이 읽은 데이터 그램이 큰 경우 : 당신이 제공한 버퍼보다 다음 Winsock은 데이터 그램 (즉, 복사 그게 뭔지 수있는 버퍼로)와 함수를 실패가 잘라냅니다.

() 보내기sendto를 (): 요청하신대로 당신은 데이터 그램을 대규모로 보낼 수 없습니다. 그 WinSock v1.1 사양 않습니다 아니 명시적으로 상태 값을 요청이보다 WSAData.iMaxUdpDg에서 반환 큰 경우이 오류가 발생합니다 WSAStartup (). 보내는 버퍼링 요구 사항은 데이터 그램을 수신보다 적은들이 있기 때문에, 그것은 당신이 생각할 수있는보다 큰 당신이받을 수있는 데이터 그램을 보낼 수 있어요.

WinSock 함수: recv (), recvfrom (), () 보내, sendto를 ()


WSAENAMETOOLONG (10,063) 파일 이름이 너무 깁니다.

버클리 설명: 경로 이름의 구성 요소는 255 (MAXNAMELEN) 문자, 또는 전체 경로 이름을 넘어 1023을 (MAXPATHLEN - 1) 문자를 초과했습니다.

WinSock 설명: 아니 동등한.

WinSock 함수: <없음>


WSAENETDOWN (10050) 네트워크가 다운.

버클리 설명: 소켓 작업이 죽은 네트워크가 발생했습니다.

WinSock 설명: 버클리와 같음. 당신이 WinSock 함수의 포괄적인 목록에서 볼 수 있듯이,이 오류가 포괄입니다. 막상 그런 일이 발생하면, 그것은) 네트워크 시스템 (의 심각한 실패를 프로토콜 즉 그는 Winsock DLL이 실행되는 동안 스택을 나타낼 수 있습니다.

사용자 제안 : , 네트워크 드라이버와 네트워크 인터페이스 카드 구성을 스택하여 Winsock을, 프로토콜을 확인합니다. 이 오류는 거의 WinSock 구현 이후 안정적으로 하드웨어 문제를 검색할 수 없습니다 발생합니다.

WinSock 함수: () 동의, 바인딩 (), 가까운소켓 (), () 연결, gethostbyaddr (), gethostbyname (), gethostname (), getpeername (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), getsockname (), getsockopt (), ioctl소켓 (), () 들어봐, recv (), recvfrom (), () 선택, () 보내, sendto를 (), setsockopt (), 종료 (), 소켓 (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (), WSAAsyncSelect (), WSACancelAsyncRequest (), WSACancelBlockingCall, WSACleanup (), WSASetBlockingHook (), FD_ACCEPT, FD_CLOSE, FD_OOB, FD_READ, FD_WRITE

추가 기능: 모든 기능이 오류와 함께 실패할 수있는 실패 수. 몇 가지 기능은 v1.1 사양보고 있습니다 WSASetLastError ()WSAUnhookBlockingHook ().


WSAENETRESET (10,052) 재설정에 대한 네트워크 연결을 떨어뜨.

버클리 설명: 당신이에 연결했던 호스트가 추락하고 다시 부팅.

WinSock, 설명: 버클리와 같음.

상세 설명 :

setsockopt ()당신은 이미 SO_KEEPALIVE 초과의 연결에서 설정하려고하는 경우 : Winsock은 이러한 오류를 생성합니다.

사용자 제안 : 자세한 내용은 WSAECONNABORTED 참조하십시오.

WinSock 함수: () 보내, sendto를 (), setsockopt ()

추가 기능: 네트워크를 않는 기능 I / O를 : recv (), recvfrom (), FD_READ, FD_WRITE

참조: WSAECONNABORTED, WSAECONNRESET, WSAETIMEDOUT


WSAENETUNREACH (10051) 네트워크에 연결할 수 없습니다.

버클리 설명: 소켓 작업을 연결할 수없는 네트워크에 시도했습니다.

WinSock 설명: 버클리 거의 동일. WinSock 들어,이 오류가 버클리 EHOSTUNREACH 오류, 액세스할 수없는 호스트에 대한 포괄 오류 같습니다. "당신은 여기서는 갈 수 없습니다."

TCP / IP를 시나리오거기에 기본 경로되지 않은 경우 : 로컬 네트워크 시스템이 오류를 생성할 수있는 구성. 일반적으로하지만, Winsock은이 오류가 라우터에서 "호스트에 연결할 수"ICMP 메시지를 받으면 생성합니다. 그것은 아래)을 제공 ARP 요청 (대상 호스트를 의미 수도에 대한 응답을받지 않았기 때문에 ICMP 메시지는 라우터가 전달할 수 없습니다 IP 데이터 그램, 어쩌면 의미합니다. 참고 :이 오류는 경우 (사용자 인터페이스 구성을 확인하십시오) 멀티 캐스트를 지원하지 않는 멀티 캐스트 패킷과 기본 게이트웨이를 보내려고하는가 발생할 수 있습니다.

사용자 제안 : 대상 호스트에 ping을, 당신은 걸보고하려고하면 동일한 결과 (가능성이 있습니다, 당신 것입니다). 대상 자체 주소를 확인하고 그것은 당신이 가고 싶어 하나입니까? 여부를 당신이 라우터를 네트워크 시스템 (귀하의 WinSock 구현)에서 구성한 확인합니다. 어디에 오류가 귀하의 호스트와 목적지 호스트 사이의 경로를 따라 발생 확인하려고 traceroute를 마십시오.

WinSock 함수: () 연결, sendto를 (), FD_CONNECT

추가 기능: 네트워크를 않는 기능 I / O를 : recv (), recvfrom (), () 보내기, FD_READ, FD_WRITE

참조 : WSAEHOSTUNREACH


WSAENOBUFS (10055) 없음 버퍼 공간.

버클리 설명: 대기열이 가득했기 때문에 시스템이나 충분한 버퍼 공간이 부족하기 때문에 소켓이나 파이프에 대한 작업이 수행되지 않았습니다.

WinSock 설명: 버클리와 같음. 는 Winsock 구현 함수 요청을 수용하기 위해 추가로 메모리를 할당할 수 없습니다.

사용자 제안:이 오류는 시스템에서 자원의 부족을 나타냅니다. 그것은 만약 당신이 너무 많은 응용 프로그램을 (모든 종류의) 동시에 컴퓨터에서 실행하려 발생할 수 있습니다. 이것은 잠시 동안 특정 응용 프로그램을 실행 후에 발생하는 경향이 경우 시스템 리소스 (메모리 같은)가 제대로 반환되지 않는 애플 리케이션의 증상일 수 있습니다. 그것은 또한 당신이 제대로 응용 프로그램을 닫을 수 없습니다 나타낼 수 있습니다. 그것은 지속되면 Windows 종료하거나 문제를 해결하려면 컴퓨터를 다시 부팅합니다. 당신은 / 회사 소개 프로그램 관리자의 "도움말과 사용 가능한 메모리를 모니터링할 수 있습니다 ..." 명령.

WinSock 함수 : () 동의, 바인딩 (), () 연결, () 들어봐, () 보내, sendto를 (), 소켓 (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (), FD_CONNECT

추가 기능일 : "데이터베이스 기능"과 같은 네트워크 시스템의 버퍼 공간을 사용하는 다른 기능, setsockopt () SO_RCVBUF SO_SNDBUF 또는 옵션.


WSAENOPROTOOPT (10,042) 잘못된 프로토콜 옵션.

버클리 설명: 잘못된 옵션이나 레벨에 지정되었습니다 getsockopt ()(2)이나 setsockopt (2) 전화.

WinSock 설명: 버클리과 동일하며 옵션이 지원되지 않는 알 수 없거나있다.

상세 설명 :

SO_BROADCAST이 SOCK_STREAM 타입의 소켓에서 지원되지 않습니다.

SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE과 TCP_NODELAY는 SOCK_DGRAM 타입의 소켓에 지원되지 않습니다.

SO_DEBUG, SO_DONTROUTE, SO_RCVBUF, SO_SNDBUF, TCP_NODELAY : 옵션 소켓 옵션.

SO_ACCEPTCONN는 SO_ERROR, SO_TYPE : 읽기 전용 옵션을, 그래서 그들은 작업 getsockopt ()하지만, 아니setsockopt ()

개발자 제안 : 매개 변수를 확인합니다. 당신은 모든 WinSock 구현에서 지원되지 않을 수 있습니다 옵션을 선택 수준이나 소켓을 사용하고 있습니까? 그렇다면, 비 치명적인 오류로 취급하고 무시, 가능하면.

WinSock 함수: getsockopt (), setsockopt ()

추가 기능: 나쁜의 IP 헤더는 "매개 변수 버클리 파생 시스템에 ENOPROTOOPT 오류 발생"메시지, 문제를 문제가 ICMP 라우터 및 원격 호스트를 일으킬 수 있습니다. 이러한 오류는 I / O는 (예 : 네트워크 않는 기능에 보고될 수 있습니다 () 연결, () 보내, recv ()등등).

참조 : WSAEINVAL


WSAENOTCONN (10,057) 소켓이 연결되지 않습니다.

버클리 설명소켓이 연결되어 있지 않기 때문에 (때 데이터 그램 소켓에 보내는) 주소도 제공 되었음 : 사유로 인해 허용 요청을 보내거나 데이터를 수신했습니다.

WinSock 설명: 버클리 동일 보태라. 응용 프로그램이 원격 소켓 (예와 함께 협회를 설립하기 전에 / 출력 네트워크 함수 호출 호출하기 전에 입력을 시도 () 연결 또는 () 동의). 또한 구체적인 의미를위한했다 setsockopt ().

상세 설명 :

setsockopt (): 당신은 SO_KEEPALIVE하지만 집합에 대한 연결이 이미 중단 (원격 호스트에서받은)는 TCP 재설정 예되었습니다하려고하는 경우 Winsock은이 오류를 생성합니다.

개발자 제안: 기회, 그것이 오류가 발생할 경우 있으며, 응용 프로그램이 일부 이전 기능의 실패를 무시. 연결이 실패하면 일부 WinSock 구현은 다른 오류를 발급하지 않을 수도 있지만, 당신은 연결 실패를 나타내는 것이 다른 사람을 당신이 오류를 처리할 수 있도록.

WinSock 함수 : getpeername (), recv (), recvfrom (), () 보내, sendto를 (), setsockopt (), 종료 (), FD_CONNECT

참조 : WSAECONNABORTED, WSAECONNRESET, WSAENETRESET, WSAETIMEDOUT


WSAENOTEMPTY (10,066) 디렉토리 비어 있지.

버클리 설명: 항목 이외의 디렉토리`. '와`..' 디렉터리 또는 이름 바꾸기 전화 제거에 공급했다.

WinSock 설명: 아니오 동등한.

WinSock 함수: <없음>


WSAENOTSOCK (10,038) 비 - 소켓에 소켓 작업.

버클리 설명: 작업 소켓을 시도했습니다. 지정된 소켓 매개 변수는 파일, 소켓을하지 말합니다.

WinSock 설명: 버클리와 같음. 소켓의 입력 매개 변수가 유효한 소켓 핸들 (되지도 그것은 유효하지, 그것은 파일 (소켓 처리하지) 핸들, 아니면 그냥 소켓 핸들 있었고, 아주)가 폐쇄되었을 수 있습니다.

상세 설명 :

() 선택: fd_set에있는 소켓이 잘못된 소켓 핸들 경우 WSAENOTSOCK와 함께 실패합니다.

개발자 제안 : 당신이 실수로 응용 프로그램의 한 부분에서 다른 부분은 통보없이 유지 소켓을 닫습니다나요? 응용 프로그램에서 사용 소켓 상태 및 / 또는 정상적으로되지 않은 치명적인 오류로이 오류를 처리할 수 있습니다.

WinSock 함수 : 입력 매개 변수로 소켓을 소요하는 모든 기능 : () 동의, 바인딩 (), 가까운소켓 (), () 연결, getpeername (), getsockname (), getsockopt (), ioctl 소켓 (), () 들어봐, recv (), recvfrom (), () 선택, () 보내, sendto를 (), setsockopt (), 종료 (), FD_CONNECT

추가 기능: WSAAsyncSelect () 기능의 일부 응용 프로그램 또는 핸들에 등록하지 않을 수도 목록 (에 있어야 FD_CONNECT 메세지).


WSAEOPNOTSUPP (10,045) 작업이 지원되지 않습니다.

버클리 설명: 시도한 작업은 참조된 개체의 형식에 대해 지원되지 않습니다. 보통이 때 파일 설명자 파일이나이 작업을 지원하지 않을 수 소켓 예를 들어, 참조가 발생, 데이터 그램 소켓에 연결을 받아들일려고 애를 썼어요.

WinSock 설명: 버클리와 같음. "당신은 귀의 뿌리다에서 비단 지갑을 만들 수 없습니다."

상세 설명:

() 동의, () 들어봐: 소켓 유형의 연결 지향 서비스를 지원하지 않습니다.

recv (), recvfrom (), () 보내, sendto를 (): MSG_OOB는하지만, 지정한 소켓 타입의 SOCK_STREAM하지 않습니다

개발자 제안 : 그렇게하지 않습니다.

WinSock 함수: () 동의, () 들어봐, recv (), recvfrom (), () 보내기, sendto를 ()


WSAEPFNOSUPPORT (10,046) 의정서 제품군은 지원되지 않습니다.

버클리 설명: 프로토콜 제품군은 시스템으로 또는 그것에 대한 구현 구성되지 않은 존재합니다.

WinSock 설명: 버클리와 같음. 확실히, Windows 소켓 사양은 감독이 밖으로 떠났다. 버클리는 의미가 약간 다릅니다 있지만 WSAEAFNOSUPPORT는 WinSock에서이에 대한 대체 가능성이 오류입니다. 그러나, WSAEPROTONOSUPPORT 다른 가능한 동등한 Winsock은이 오류의 장소에서 사용할 수 있습니다.

WinSock 함수: <없음>

추가 기능: 버클리 호환성을 위해, 소켓 () 지원되지 않는 주소 가족이 요청하는 경우에는 기능이 오류와 함께 실패합니다.

참조 : WSAEAFNOSUPPORT


WSAEPROCLIM (10,067) 너무 많은 처리합니다.

버클리 설명: 4.3 BSD와 또는 호환 운영 체제에서 동등한 없음.

WinSock 설명: 아니 동등한.

WinSock 함수: <없음>

추가 기능: WinSock 구현 그것이, 응용 프로그램의 초기 전화로 처리할 수있는 동시 작업의 수에 상한이있다면 WSAStartup () 이 오류와 함께 실패 수 있습니다.


WSAEPROTONOSUPPORT (10,043) 프로토콜은 지원되지 않습니다.

버클리 설명: 프로토콜이 시스템에, 또는 그것에 대한 구현으로 구성이되지 않은 존재합니다.

WinSock 설명: 버클리와 같음. 그래서, 예를 들어, WinSock 구현), 다음 IPPROTO_IP (또는 다른 프로토콜로 SOCK_RAW를 지원하지 않는 경우 소켓 () 전혀, 당신은) WSAESOCKTNOSUPPORT을 기대해야 SOCK_RAW를 지원하지 않는 경우 전화 WSAEPROTONOSUPPORT (단,와 함께 실패할 것입니다.

개발자 추천 : 당신은 옵션 기능을 사용하려는거야? 가능하면 비 치명적인 오류 (이 핸들 요청), 일부 Winsock이있어 법적으로 요청을 실패할 수 있기 때문에.

WinSock 함수: 소켓 ()

참조 : WSAESOCKTNOSUPPORT


WSAEPROTOTYPE (10,041) 소켓을위한 프로토콜 잘못된 유형.

버클리 설명: 프로토콜은 그것은 소켓 타입의 의미를 지원하지 않습니다 지정되었습니다 요청했습니다. 예를 들어, 입력 SOCK_STREAM과 ARPA 인터넷의 UDP 프로토콜을 사용할 수 없습니다.

WinSock 설명: 버클리와 같음. 만약 당신이 특별히 참조 주소 가족의 일원 당신은 또한 참조하지 않는 프로토콜을이 오류가 발생합니다. 이 두 매개 변수를 명시적으로 걸리는 유일한 기능은 소켓 ().

개발자 제안: 각 데이터 그램과 인터넷 주소 가정에서 데이터 스트림 소켓 유형에 대해 단 하나에 해당 프로토콜을하고 있으므로, 당신은 단순히의 가치를 떠나 야지 프로토콜 입력 매개 변수에 소켓 (). 반면, 당신이 부를 수 getprotobyname () 또는 WSAAsyncGetProtoByName () 네트워크 시스템에서 해당 프로토콜 가치를 얻을 수 있습니다.

WinSock 기능: 소켓 ()

참조 : WSAEAFNOSUPPORT, WSAEPFNOSUPPORT


WSAEREMOTE (10,071) 경로에 원격의 수준이 너무 많습니다

버클리 설명: 항목은 호스트에 로컬되지 않습니다. 서버가 허용되지 않습니다 다른 NFS 서버에 요청을 생성하여 NFS를 요청을 처리하기 위해 시도했다.

WinSock 설명: 아니오 동등한. 는 Winsock API는 네트워크 파일 시스템 애플 리케이션 프로토콜에 대한 액세스를 제공하지 않는다, 이러한 오류가 WinSock에 무관하므로.

WinSock 함수: <없음>


WSAESHUTDOWN (10058) 소켓 종료 후 보낼 수 없습니다.

버클리 설명소켓이 이미 폐쇄했기 때문에 : 허용되지 요청 데이터를 보내는 것이었다 이전 종료 () 전화.

WinSock 설명: 버클리와 같은. 호출하여 종료 () 당신은 가까운 소켓, 이는 당신이 보내는 중단해야만 할 부분. 는 Winsock 구현이 후에 보낼 수 없습니다.

TCP / IP를 시나리오: 전화 종료 () 방법 = 1 또는 방법 = 2 말 그대로 의미 원격 주소에 대한 TCP 지느러미 패킷을 보냅니다 "내가 보내는 끝났어요." 로컬 호스트가 그 이후부터는 더 이상 데이터가, 그것의 TCP 사양 (RFC는 793과 1122)의 명백한 위반이 될 수도 보낸 바랍니다.

개발자 제안: 간단한 제안은 "그렇게하지 않습니다." 아무리 당신이 사용 가치의 "방법"에 매개 변수 종료 () 기능, 당신은 나중에 보낼 수 없습니다. 당신이 주변을 입금해 드렸습니다 후 소켓에 보내려고의 실수, 소켓 상태의 응용 프로그램 (안에 트랙을 유지하고 당신은 I / O를 시도하기 전에 그것을 선택하여) 피할 수 있습니다.

WinSock 함수: recv (), recvfrom (), () 보내기, sendto를 (), 데이터 스트림 소켓 전용.


WSAESOCKTNOSUPPORT (10,044) 소켓 유형이 지원되지 않습니다.

버클리 설명: 소켓 타입 시스템으로 또는 그것에 대한 구현되지 않은 구성에 대한 지원이 존재합니다.

WinSock 설명: 버클리와 유사합니다. 이 오류는 Winsock 설명 "은 지정된 소켓 타입이 주소 패밀리,"이는 좀 더 버클리 설명보다 오류 조건을 자격이 지원되지 않는 것입니다. WinSock 구현 인터넷 주소 제품군 내의 (AF_INET) 소켓 유형 SOCK_RAW를 지원하지 않는면, 예를 들어,이 오류를 기대할 수 있습니다.

개발자 추천 : 당신은 옵션 기능을 사용하려는거야? 가능하면 비 치명적인 오류 (이 핸들 요청), 일부 Winsock이있어 법적으로 요청을 실패할 수 있기 때문에.

WinSock 함수: 소켓 ()

참조 : WSAEPROTOTYPE, WSAEPROTONOSUPPORT


WSAESTALE (10,070) 오래된 파일을 NFS를 손잡이.

버클리 설명: 시도가 NFS를 파일 시스템에 열린 파일 (액세스)는 지금 같은 파일 설명에서 참조를 사용할 수 없습니다되었다. 이 파일은 NFS 서버 또는 다른 치명적인 이벤트가 삭제되었습니다 나타낼 수가 발생했습니다.

WinSock 설명: 아니오 동등한. NFS를 "은 네트워크 관련"엄격한 의미에서지만, 네트워크 파일 시스템 프로토콜 응용 프로그램 프로토콜 ( "높은 수준의 예 :"프로토콜)입니다. 윈도우 소켓 API는 낮은 수준 "에 대한 액세스를 제공하는"API를의 (전송 프로토콜 같은 TCP 및 UDP),이 오류가 WinSock 관련성이 아닙니다.

WinSock 함수: <없음>


WSAETIMEDOUT (10,060) 연결 시간이 초과되었습니다.

버클리 설명: 연결된 파티가 제대로 일정 기간 후 응답하지 않았기 때문에 연결하거나 전송 요청이 실패했습니다. (시간 초과 기간 통신 프로토콜에 따라 좌우됩니다.)

WinSock 설명: 버클리로 동일하지만 적습니다. 이 오류는 관련이 () 연결하지만,하지 () 보내 또는 sendto를 () 그것은 버클리 소켓에서와 같이.

사용자 제안: 분명한 첫번째 체크인 : 점검 대상 주소가 유효한 IP 주소입니다. 당신은, 그것이 올바른 주소로 해결 했어 호스트 이름을 사용한 경우? 호스트 이름 해상도는 로컬 호스트 테이블을 사용하는 경우, 가능하다면, 당신은 오래된 주소로 해결될거야. 당신도 그 호스트를 Ping?

당신이 라우터를 구성 있나요? , 라우터 위 (수표를 Ping을 수행하여 실행하고 다음) 그것의 반대편에 주소를 Ping? 대상 주소로 traceroute 시도는 모든 라우터 기능을 확인합니다.

당신의 서브넷 마스크를 확인합니다. 당신은 적절한 서브넷 마스크가없는 경우, 네트워크 시스템 (이것은 전달 라우터 로컬 서브넷에보다는 주소 그래서 로컬로 제공 ARP 요청을 방송) 또는 비자를 반대하는 원격 주소로 로컬 주소를 취급하기도합니다.

WinSock 함수 : () 연결, FD_CONNECT

추가 기능: / O는 네트워크에서이 오류를 생성할 수있는 내가 않는 기능, 그리고 WSAAsyncSelect () 이벤트 FD_OOB, FD_READ, FD_WRITE.

참조 : WSAECONNABORTED, WSAECONNRESET, WSAENETRESET


WSAETOOMANYREFS (10,059) 너무 많은 참조; 접착 수 없습니다

버클리 설명: 몇 가지 커널 수준의 개체에 대한 참조가 너무 많습니다; 관련 리소스가 모두 소비했습니다.

WinSock 설명: 아니오 동등한.

WinSock 함수: <없음>


WSAEUSERS (10068) 사용자가 너무 많습.

버클리 설명: 할당량 시스템은 테이블 항목의 쳤.

WinSock 설명: 아니오 동등한.

WinSock 함수: <없음>


WSAEWOULDBLOCK (10,035) 리소스를 일시적으로 사용할.

버클리 설명: 이것은 일시적인 상태이며, 나중에 동일한 루틴을 정상적으로 (또한 버클리 소프트웨어 배포 버전 4.3 EAGAIN 오류라고도 함)에 대한 호출 완료될 수 있습니다

WinSock 설명: 버클리와 같음. 소켓이 비 (차단되지 않은 모드) 작동을 차단하고, 요청된 작업으로 표시가 완료 현재로서는 없습니다.

상세 설명 :

() 연결: 수술이 진행,하지만 아직 완전하지 않습니다.

가까운소켓 (): 0이 아닌 타임아웃으로 설정한 비 블로킹 소켓에서 발생 setsockopt () SO_LINGER. 문제는 다를 수 있습니다 : 일부 WinSocks은 백그라운드에서 완전한 것, 그리고 다른 사람들이 완료 closesocket 다른 전화를 요구할 수 있습니다. 이 비 실한을 피하기 위해 소켓을 차단합니다 (제 9 장 더 자세한 정보)를 0이 아닌 시간 제한을 설정하지 마십시오.

() 보내 또는 sendto를 (): 밖으로 버퍼 공간, 그래서 나중에 다시 시도하거나 때까지 기다려 FD_WRITE

알림 (WSAAsyncSelect ()) 또는 () 선택 writefds 설정됩니다.

다른 모든 기능 : 그것이 이번에 만족할 수 없다 때문에 나중에 다시 수술을 다시 시도하십시오.

개발자 제안 : 비 블로킹 소켓을 사용하는 모든 응용 프로그램이 오류에 대한 준비를하셔야합니다 어떤 기능은 아래에 언급된 전화. 예를 들어, 경우에도 요청 () 보내 새로 만든 TCP 연결에 대한 데이터가 몇 바이트, () 보내 WSAEWOULDBLOCK과 (말, 네트워크 시스템의 경우는 TCP 슬로우 스타트 알고리즘을 구현했다) 실패할 수 있습니다. WSAAsyncSelect () FD_WRITE 이벤트가 특별히 WSAEWOULDBLOCK 오류 버퍼 공간을 다시 사용할 수 있도록 후 응용 프로그램을 알릴 수 있도록 설계되었습니다 () 보내기 또는 sendto를 () 성공해야합니다.

WinSock 함수 : () 동의, 가까운 소켓 (), () 연결, recv (), recvfrom (), () 보내, sendto를 (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort ()


WSAHOST_NOT_FOUND (11001) 호스트를 찾을 수 없습니다

버클리 설명: 해당 호스트가 알려져있다. 당신이 사용한 이름이 공식 호스트 이름 또는 별칭을하지 않습니다. 이것은 부드러운 오류, 네임 서버 요청을 다른 종류의 성공 수 없습니다.

WinSock 설명: 버클리와 같음. 어느는 Winsock 이름 확인 기능이 오류와 함께 실패할 수 있습니다. 는 Winsock API는 어떤 방식 으로든 특정 이름 확인 프로토콜, 서버 주소, 또는 레코드 유형을 선택 제공하지 않습니다.

TCP / IP를 시나리오 : 대부분의 WinSock 구현 도메인 이름 시스템 (DNS) 호스트 이름 확인을 해결하기위한 프로토콜을 사용할 수 있지만 몇 가지 사용하여 네트워크 정보 시스템 (국정원). 당신은 이름 서버를 대신 구성 또는뿐 아니라 호스트 테이블, 호스트 이름 확인 요청을한다고 가정 WinSock DLL이 "A"레코드 쿼리 (주소 쿼리)를 구성된 DNS 쿼리에 대한 DNS를 보내지 않습니다. 당신은 하나 이상의 서버를 구성한 경우 호스트 이름 쿼리 후에만는 Winsock DLL이 모든 서버를 쿼리가 실패합니다.

사용자 제안 : 당신은 이름 서버 (들을 가지고 확인) 및 / 또는 호스트 테이블이 구성되었습니다. 당신이 수표를 이름 서버 (들)을 사용하는 경우 서버 호스트 (들) 여부에 접속 (예 : 서버 (들)) Ping을 시도하고 있습니다. 당신은 또한 당신이 일을 알아야하는 다른 호스트 이름, 그 이름 확인 서버 애플 리케이션이 실행중인 확인 해결을 위해 시도해 볼 수도 있습니다.

당신이 독점적으로 호스트 테이블을 사용하는 경우, 당신은 대상 호스트 이름과 주소를 추가하는 업데이 트해야합니다.

개발자 제안 : 프로토콜과 서비스에 대한 프로토콜 번호 또는 서비스 포트 번호에 대비하여 해결 시도가 실패 하드 코딩된 값 사용을 고려하십시오, 당신은 당신의 케이크를 가질 수도 그것을 먹는다.

WinSock 함수 : gethostbyaddr (), gethostbyname (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort ()

추가 기능 : 그것은 비동기 프로토콜 및 서비스 기능이 오류와 함께 실패할 수있는 이상한 있지만 동기식 수 없습니다. 누락된 기능은 getprotobyname (), getprotobynumber (), getservbyname (), 그리고 getservbyport ().

참조 : WSANO_DATA, WSANO_RECOVERY, WSATRY_AGAIN


WSANOTINITIALISED (10,093) 성공한 WSAStartup () 아직 수행하지

버클리 설명: 아니오 동등한.

WinSock 설명: 어느 응용 프로그램이 호출되지 않았습니다 WSAStartup (), 또는 WSAStartup () 또는 실패 - 아마도 - 현재 활성화된 작업이 소유하지 않는 자네가) 작업 사이의 소켓을 공유하려는 소켓 (예 : 액세스하고 있습니다. 'S'대신과 함께 영국의 맞춤법을 (참고 사항 '부터 Z').

사용자 제안 : 기회는 네트워크 서브 시스템입니다이 잘못 구성되어 있거나 비활성. 보기 WSASYSNOTREADY 자세한 내용은.

개발자 제안: WSAStartup () 실패, 그리고 당신은, 또는 그것을 감지하지 않았 그것은 현재의 작업이 전혀 대한 호출되지 않았거나 당신이 전화 WSACleanup () 너무 여러 번.

WinSock 함수 : () 동의, 바인딩 (), 가까운소켓 (), () 연결, gethostbyaddr (), gethostbyname (), gethostname (), getpeername (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), getsockname (), getsockopt (), ioctl소켓 (), () 들어봐, recv (), recvfrom (), () 선택, () 보내, sendto를 (), setsockopt (), 종료 (), 소켓 (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (), WSAAsyncSelect (), WSACancelAsyncRequest (), WSACancelBlockingCall, WSACleanup (), WSASetBlockingHook (), WSAUnhookBlockingHook ()

추가 기능: 유일한 기능은 나열하지 않습니다 오류 WinSock 프로그램 오류로 인해 실패한 수 있습니다 WSAUnhookBlockingHook (). 분명,이 감독이 의도되지 않았습니다.


WSANO_DATA (11004) 유효한 이름, 요청된 형식의 데이터가 기록

버클리 설명: 요청한 이름이 유효하지만 이름이 서버에서 인터넷의 IP 주소를 가지고 있지 않습니다. 이것은 일시적인 오류가 아닙니다. 이것은 이름 서버에 대한 답변 높아집니다 요청의 다른 유형을 의미합니다.

WinSock 설명: 버클리 동일한 호스트 해결에 있습니다. 프로토콜 및 서비스 해상도 들어, 이름이나 번호가 해당 데이터베이스에서 찾을 수 없습니다.

사용자 제안 : 자세한 내용은 WSAHOST_NOT_FOUND 참조하십시오.

WinSock 함수 : gethostbyaddr (), gethostbyname (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (),

참조 : WSAHOST_NOT_FOUND, WSANO_RECOVERY, WSATRY_AGAIN


WSANO_RECOVERY (11,003) 이것은 복구되지 않은 오류입니다

버클리 설명: 이것은 복구되지 않은 오류가 있습니다.

WinSock 설명: 버클리와 같음. 특히, v1.1 Windows 소켓 사양은 도메인 이름 시스템 (DNS) 오류 "FORMERR, 거절, 그리고 & NOTIMP 메모. 프로토콜 및 서비스를 확인을 위해, 그것의 위치는 아니라 각각의 데이터베이스를 의미합니다.

은 RFC 1035에서 상세 설명 ( "도메인 이름", 추신 Mockapetris로) :

형식 오류 : 이름 서버는 쿼리를 해석하지 못했습니다.

요청이 거부 : 이름 서버는 정책상의 이유로 귀하의 쿼리를 만족을 거부합니다.

구현되지 않음 : 이름 서버는 지정된 작업을 수행하지 않습니다.

사용자 제안 : 자세한 내용은 WSAHOST_NOT_FOUND 참조하십시오.

WinSock 함수 : gethostbyaddr (), gethostbyname (), getprotobyname (), getprotobynumber (), getservbyname (), getservbyport (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort (),

참조 : WSAHOST_NOT_FOUND, WSANO_DATA, WSATRY_AGAIN


WSASYSNOTREADY (10,091) 네트워크 하위 시스템을 사용할 수 없습니다

버클리 설명: 아니오 동등한.

WinSock 설명: 기본 시스템을 사용하면 네트워크 서비스를 제공하는 사용하기 때문에는 Winsock 구현 이번에, 작동하지 않을 수는 현재 사용할 수 없습니다.

사용자 제안 :

  • 그것에 Winsock.dll 파일이 현재 경로에 확인
  • 그것에 Winsock.dll 파일이 기본 프로토콜 스택과 같은 업체에서 확인하십시오. 당신은 혼합 수 없습니다 (WinSock DLL이 귀하의 기본 프로토콜 스택을 제공하는 동일한 공급 업체에서 제공해야합니다) 일치합니다.
  • 당신은 동시에 하나 이상 WinSock 구현을 사용할 수 없습니다. 당신이 경로의 첫 번째 하나는 네트워크 서브 시스템이 현재로드에 적합한 반드시 여러분의 시스템에 하나 이상의 WinSock DLL을 바랍니다.
  • 필요한 모든 구성 요소가 현재 설치되어있는 확인하고 올바르게 구성하여 WinSock 구현 문서를 확인하십시오.

WinSock 함수 : WSAStartup ()


WSATRY_AGAIN (11,002) 신뢰할 수없는 호스트를 찾을 수 없습니다

버클리 설명: 이것은 일반적으로 일시적인 오류이며 해당 로컬 서버에서 권한을 보유한 서버에서 응답을받지 못했습니다 것을 의미합니다. 시간이 좀 나중에 성공할 수 있습니다 재시도.

WinSock 설명: 버클리와 같음. 공지 사항이 비동기 서비스 및 프로토콜 기능은 다음과 같습니다, 호스트 이름 확인 기능에 추가합니다.

사용자 제안 : 자세한 내용은 WSAHOST_NOT_FOUND 참조하십시오.

WinSock 기능 : gethostbyaddr (), gethostbyname (), WSAAsyncGetHostByAddr (), WSAAsyncGetHostByName (), WSAAsyncGetProtoByName (), WSAAsyncGetProtoByNumber (), WSAAsyncGetServByName (), WSAAsyncGetServByPort ()

참조 : WSANO_DATA, WSANO_RECOVERY, WSATRY_AGAIN


WSAVERNOTSUPPORTED (10,092) 범위를 초과 Winsock.dll 버전

버클리 설명: 아니오 동등한.

WinSock 설명: 현재 WinSock 구현은 Windows 소켓 사양 버전을 응용 프로그램에 의해 요청된 지원하지 않습니다.

사용자 제안 : 자네는 Winsock DLL을 사양는 Winsock 응용 프로그램에 필요한 버전을 지원하나요? 그렇다면,이 경로에있는 디렉토리에 앞서 디렉토리 DLL을 포함하는 최신의 이전 DLL이 무엇입니까? 그들은 새로운 WinSock을 사용할 수있다면 당신의 WinSock 공급 업체와 그렇지 않은 경우, 확인 볼 수 있습니다.

개발자 추천 : 에있는 예제 코드 조각을 사용하여 WSAStartup () v1.1 사양에 어떻게 응용 프로그램이 Windows 소켓 사양 버전을 보여줍니다 협상 문서,.

참고 : MAKEWORD 매크로는 코드 조각에서 참조됩니다 아니 WINSOCK.H 헤더 파일에서 제공되는 모든 표준 헤더 파일입니다. 여기에 유용한 매크로가 있습니다 :

# MAKEWORD (즉, 낮은 높이) ((워드) (((바이트) (저)) | (((워드) ((바이트) (높이))) <<8))) 정의

WinSock 함수 : WSAStartup (). [맨 위로 이동]


숫자 순서에 오류

WSABASEERR (0) 중 오류가 발생 없음

WSAEINTR (10004) 방해 시스템 호출

WSAEBADF (10009) 잘못된 파일 번호

WSAEACCES (10013) 허가 거부

WSAEFAULT (10014) 잘못된 주소

WSAEINVAL (10,022) 잘못된 인수

WSAEMFILE (10,024) 너무 많은 파일이 열려

WSAEWOULDBLOCK (10,035) 운행 차단

WSAEINPROGRESS (10,036) 지금 진행중인 작업

WSAEALREADY (10,037) 작업 진행에 이미

WSAENOTSOCK (10,038) 비 - 소켓에 소켓 작업

WSAEDESTADDRREQ (10,039) 목적지 주소가 필요

WSAEMSGSIZE (10,040) 메시지가 너무 깁니다

WSAEPROTOTYPE 소켓 (10041) 의정서 잘못된 유형

WSAENOPROTOOPT (10,042) 잘못된 프로토콜 옵션

WSAEPROTONOSUPPORT (10,043) 프로토콜을 지원하지 않습니다

WSAESOCKTNOSUPPORT (10,044) 소켓 유형을 지원하지 않습니다

WSAEOPNOTSUPP (10,045) 운영 소켓에서 지원되지 않습니다

WSAEPFNOSUPPORT (10,046) 프로토콜 제품군은 지원되지 않습니다

WSAEAFNOSUPPORT (10047) 주소 패밀리 프로토콜 제품군에서 지원하지 않는

WSAEADDRINUSE (10,048) 주소가 이미 사용

WSAEADDRNOTAVAIL (10049) 수 할당 주소를 요청하지

WSAENETDOWN (10050) 네트워크 다운입니다

WSAENETUNREACH (10051) 네트워크에 접속할 수있다

WSAENETRESET (10,052) 인터넷 연결 또는 재설정을 떨어뜨

WSAECONNABORTED (10,053) 소프트웨어 연결 중지를 일으켰습니다

WSAECONNRESET (10054) 피어에 의해 연결이 재설정

WSAENOBUFS (10055) 없음 버퍼 공간

WSAEISCONN (10,056) 소켓이 이미 연결되어 있습니다

WSAENOTCONN (10,057) 소켓 연결되어 있지 않은 경우

WSAESHUTDOWN (10058) 소켓 종료 후에 보낼 수 없습니다

WSAETOOMANYREFS (10,059) 너무 많은 참조, 접착 수 없습니다

WSAETIMEDOUT (10,060) 연결 시간이 초과되었습니다

WSAECONNREFUSED (10061) 연결이 거부됨

WSAELOOP (10,062) 심볼릭 링크의 수준이 너무 많습니다

WSAENAMETOOLONG (10,063) 파일 이름이 너무 깁니다

WSAEHOSTDOWN (10,064) 호스트 추락

WSAEHOSTUNREACH (10065) 아니오 국도 호스트로의

WSAENOTEMPTY (10,066) 디렉터리 비어 있지

WSAEPROCLIM (10,067) 너무 많은 프로세스

WSAEUSERS (10,068) 너무 많은 사용자들이

WSAEDQUOT (10,069) 디스크 할당량을 초과했습니다

WSAESTALE (10,070) 부실의 NFS를 손잡이 파일

WSASYSNOTREADY (10,091) 네트워크 하위 시스템을 사용할 수 없습니다

WSAVERNOTSUPPORTED (10,092) WinSock DLL의 버전 범위를 벗어났습니다

WSANOTINITIALISED (10,093) 성공 WSASTARTUP을 아직 수행하지

WSAEREMOTE (10,071) 경로에서 원격의 수준이 너무 많습니다

WSAHOST_NOT_FOUND (11001) 호스트를 찾을 수 없습니다

WSATRY_AGAIN (11,002) 신뢰할 수없는 호스트를 찾을 수 없습니다

WSANO_RECOVERY (11,003) 비 복구 오류 : FORMERR, 거절, NOTIMP

WSANO_DATA (11004) * 유효한 이름과 요청된 형식의 데이터가 기록을

WSANO_ADDRESS (11,004) ※ 주소, MX 레코드를 찾아

* 이러한가 같은 값 (일반적으로, 참고 만 WSANO_DATA )보고 

댓글