다음을 통해 공유


CAsyncSocket::SendTo

데이터를 특정 대상에 보낼이 멤버 함수를 호출 합니다.

int SendTo(
   const void* lpBuf,
   int nBufLen,
   UINT nHostPort,
   LPCTSTR lpszHostAddress = NULL,
   int nFlags = 0 
);
int SendTo(
   const void* lpBuf,
   int nBufLen,
   const SOCKADDR* lpSockAddr,
   int nSockAddrLen,
   int nFlags = 0 
);

매개 변수

  • lpBuf
    전송 될 데이터를 포함 하는 버퍼입니다.

  • nBufLen
    데이터의 길이가 lpBuf (바이트)에서입니다.

  • nHostPort
    소켓 응용 프로그램을 식별 하는 포트입니다.

  • lpszHostAddress
    이 개체에 연결 된 소켓의 네트워크 주소: 컴퓨터 이름을 "입니다," 또는 "128.56.22.8"와 같이 점으로 구분 된 숫자입니다.

  • nFlags
    호출 되는 방법을 지정 합니다.이 함수의 의미는 소켓 옵션으로 결정 됩니다 및 nFlags 매개 변수.C + +에서 다음 값을 조합 하 여 후자 생성 된 OR 운영자:

    • MSG_DONTROUTE 데이터 라우팅 적용 해서는 안 되도록 지정 합니다.이 플래그를 무시 하는 Windows 소켓 공급 업체를 선택할 수 있습니다.

    • MSG_OOB 대역의 데이터 전송 (SOCK_STREAM 만).

  • lpSockAddr
    에 대 한 포인터는 SOCKADDR 대상 소켓의 주소를 포함 하는 구조입니다.

  • nSockAddrLen
    주소에서 길이 lpSockAddr (바이트)에서입니다.

반환 값

오류가 발생 하는 경우 SendTo 총 전송 되는 문자를 반환 합니다.(이 표시 된 수보다 작을 수 있으며 nBufLen.) 그렇지 않으면 값이 SOCKET_ERROR 반환 됩니다 및 특정 오류 코드를 호출 하 여 검색할 수 있는 GetLastError.다음 오류는이 멤버 함수에 적용 됩니다.

  • WSANOTINITIALISED 성공적으로 AfxSocketInit 이 API를 사용 하기 전에 발생 합니다.

  • WSAENETDOWN 는 Windows 소켓 구현이 감지 네트워크 하위 시스템 실패 합니다.

  • WSAEACCES 요청한 주소가 브로드캐스트 주소를 있지만 적절 한 플래그가 설정 되어 있지 않습니다.

  • WSAEINPROGRESS Windows 소켓 차단 작업이 진행 중입니다.

  • WSAEFAULT 는 lpBuf 또는 lpSockAddr 매개 변수는 사용자 주소 공간의 일부가 또는 lpSockAddr 인수가 너무 작아서 (크기 보다는 SOCKADDR 구조).

  • WSAEINVAL 호스트 이름이 올바르지 않습니다.

  • WSAENETRESET Windows 소켓을 삭제 하기 때문에 연결을 다시 설정 해야 합니다.

  • WSAENOBUFSWindows 소켓 버퍼 교착 상태를 보고합니다.

  • WSAENOTCONN 소켓이 연결 되어 있지 않습니다 (SOCK_STREAM 만).

  • WSAENOTSOCK 설명자가 소켓이 아닙니다.

  • WSAEOPNOTSUPP   MSG_OOB 지정 된 소켓 형식의 아닙니다 SOCK_STREAM.

  • WSAESHUTDOWN ; 아래로 소켓 이미 종료 된 호출할 수 없는 SendTo 후 소켓 ShutDown 호출 된 nHow 1 또는 2로 설정 합니다.

  • 아닙니다 소켓 표시 비블로킹으로 요청한 작업이 차단 됩니다.

  • WSAEMSGSIZE 소켓 형식이 SOCK_DGRAM, 및 데이터 그램을 Windows 소켓 구현에서 지원 되는 최대값 보다 큽니다.

  • WSAECONNABORTED 가상 회로 시간 초과 나 기타 오류로 인해 중단 되었습니다.

  • WSAECONNRESET 가상 회로 원격 나란히 원래 대로 설정 했습니다.

  • WSAEADDRNOTAVAIL 지정 된 주소는 로컬 컴퓨터에서 사용할 수 없습니다.

  • WSAEAFNOSUPPORT 주소에 지정 된 제품군이이 소켓을 사용할 수 없습니다.

  • WSAEDESTADDRREQ 대상 주소입니다.

  • WSAENETUNREACH 네트워크에서이 호스트에 연결할 수 없습니다.

설명

SendTo스트림 또는 데이터 그램 소켓에 사용 되며 소켓에서 나가는 데이터를 쓰는 데 사용 됩니다.데이터 그램 소켓에 대 한 최대 IP 패킷 크기는 내부 서브넷에서 지정 하는 초과 하지 않도록 주의 해야의 iMaxUdpDg 요소에는 WSADATA 구조 채울 여 AfxSocketInit.원자적으로 내부 프로토콜 오류를 통해 전달 하는 데이터가 너무 깁니다 경우 WSAEMSGSIZE 반환 된 데이터가 전송 됩니다.

이때의 성공적인 완료는 SendTo 데이터가 성공적으로 배달 된 나타내지 않습니다.

SendTo만 사용 되는 SOCK_DGRAM 소켓 식별 되는 특정 소켓에 데이터 그램을 보낼 수는 lpSockAddr 매개 변수.

브로드캐스트를 보내려면 (에 SOCK_DGRAM 만), 주소에는 lpSockAddr 특수 IP 주소를 사용 하 여 매개 변수를 생성 해야 INADDR_BROADCAST (WINSOCK 소켓 Windows 헤더 파일에서 정의 합니다.H)과 함께 원하는 포트 번호입니다.또는 if는 lpszHostAddress 매개 변수가 NULL, 소켓에 브로드캐스트 구성 됩니다.이 조각화가 발생할 수 있습니다, 크기를 초과 하는 브로드캐스트 데이터 그램을 일반적으로 권장 되는 의미 (헤더 제외) 데이터 그램의 데이터 부분 512 바이트를 초과할.

IPv6 주소를 처리할 수 CAsyncSocket::SendToEx.

요구 사항

헤더: afxsock.h

참고 항목

참조

CAsyncSocket 클래스

계층 구조 차트

CAsyncSocket::Create

CAsyncSocket::Receive

CAsyncSocket::ReceiveFrom

CAsyncSocket::Send