none
help WSAEFAULT error RRS feed

  • 질문

  • I am using Winsock for client application, and I try to bind.

    Then, I received error code "WSAEFAULT" at the WSAGetLastError().

    This problem can be found in one of the test PC. (I tests at least 10 PCs)


    Vista Home premium Service pack 2 was installed on the issued test PC, (Windows 7 or XP was installed on another PCs.)

    I don't see anything which could possibly lead to this error.

    Here's the code:

    void bind(SOCKET_FD sockfd, uint16 port, unsigned long address)
    {
        sockaddr_in addr;
        ::memset(&addr, 0, sizeof(sockaddr_in));
        addr.sin_family = AF_INET;
        addr.sin_addr.s_addr = address;
        addr.sin_port = htons(port);

        int32 err = ::bind(sockfd, (struct sockaddr*)&addr, sizeof(sockaddr_in));
        if (err == RETURN_ERROR) {
            throw WSAGetLastError();
        }
    }

     


    • 편집됨 79david.hwang 2013년 1월 30일 수요일 오전 11:32
    2013년 1월 30일 수요일 오전 11:13

모든 응답

  • 주소 형식이 잘못된듯합니다. address 에 저장된 값이 inet_addr("ip") 함수를 사용해서

    구성한 값이 맞는지 확인하셔야 할것 같습니다. 가령, Address family와 맞지 않는 주소체계를

    사용했다면 해당 오류가 발생할수 있습니다.

     

      addr.sin_family = AF_INET;

      addr.sin_addr.s_addr = inet_addr("192.168.0.190");

     

    2013년 2월 5일 화요일 오후 3:56
    중재자