관리 메뉴

History

Socket 구조체 도움말 본문

Visual Studio/Microsoft MFC 도움말

Socket 구조체 도움말

luckybee 2022. 8. 21. 20:11
728x90
반응형
SOCKET WSAAPI socket(
  [in] int af,
  [in] int type,
  [in] int protocol
);

[in] af

주소 패밀리 사양입니다. 주소 패밀리에 대해 가능한 값은 Winsock2.h 헤더 파일에 정의되어 있습니다.

Windows Vista 이상용으로 출시된 Windows SDK에서는 헤더 파일의 구성이 변경되었으며 주소 패밀리에 대한 가능한 값은 Ws2def.h 헤더 파일에 정의되어 있습니다. Ws2def.h 헤더 파일은 Winsock2.h 에 자동으로 포함되며 직접 사용해서는 안 됩니다.

현재 지원되는 값은 IPv4 및 IPv6용 인터넷 주소 패밀리 형식인 AF_INET 또는 AF_INET6입니다. 주소 계열에 대한 다른 옵션(예: NetBIOS와 함께 사용하기 위한 AF_NETBIOS)은 주소 계열에 대한 Windows 소켓 서비스 공급자가 설치된 경우 지원됩니다. AF_ 주소 계열 및 PF_ 프로토콜 계열 상수의 값은 동일하므로(예: AF_INET  PF_INET ) 두 상수 중 하나를 사용할 수 있습니다.

아래 표에는 다른 많은 값이 가능하지만 주소 패밀리에 대한 공통 값이 나열되어 있습니다.

 

AF의미
AF_UNSPEC0 주소 패밀리가 지정되지 않았습니다.
AF_INET2 IPv4(인터넷 프로토콜 버전 4) 주소 계열.
AF_IPX6 IPX/SPX 주소 제품군. 이 주소 패밀리는 NWLink IPX/SPX NetBIOS 호환 전송 프로토콜이 설치된 경우에만 지원됩니다.이 주소 패밀리는 Windows Vista 이상에서 지원되지 않습니다.
AF_APPLETALK16 AppleTalk 주소 패밀리. 이 주소 패밀리는 AppleTalk 프로토콜이 설치된 경우에만 지원됩니다.이 주소 패밀리는 Windows Vista 이상에서 지원되지 않습니다.
AF_NETBIOS17 NetBIOS 주소 계열. 이 주소 패밀리는 NetBIOS용 Windows 소켓 공급자가 설치된 경우에만 지원됩니다.NetBIOS용 Windows 소켓 공급자는 32비트 버전의 Windows에서 지원됩니다. 이 공급자는 기본적으로 32비트 버전의 Windows에 설치됩니다.
NetBIOS용 Windows 소켓 공급자는 Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 또는 Windows XP를 포함한 64비트 버전의 Windows에서 지원되지 않습니다.
NetBIOS용 Windows 소켓 공급자는 type 매개 변수가 SOCK_DGRAM 으로 설정된 소켓만 지원합니다 .
NetBIOS용 Windows 소켓 공급자는 NetBIOS 프로그래밍 인터페이스 와 직접적인 관련이 없습니다 . NetBIOS 프로그래밍 인터페이스는 Windows Vista, Windows Server 2008 이상에서 지원되지 않습니다.
AF_INET623 IPv6(인터넷 프로토콜 버전 6) 주소 계열.
AF_IRDA26 IrDA(적외선 데이터 협회) 주소 제품군.이 주소 패밀리는 컴퓨터에 적외선 포트와 드라이버가 설치된 경우에만 지원됩니다.
AF_BTH32 블루투스 주소 패밀리.이 주소 패밀리는 컴퓨터에 Bluetooth 어댑터와 드라이버가 설치된 경우 SP2 이상이 설치된 Windows XP에서 지원됩니다.

[in] type

새 소켓의 유형 사양입니다.

소켓 유형에 대한 가능한 값은 Winsock2.h 헤더 파일에 정의되어 있습니다.

다음 표에는 Windows 소켓 2에 대해 지원되는 유형 매개변수의 가능한 값이 나열되어 있습니다.

유형의미
SOCK_STREAM1 OOB 데이터 전송 메커니즘을 사용하여 순차적이고 안정적인 양방향 연결 기반 바이트 스트림을 제공하는 소켓 유형입니다. 이 소켓 유형은 인터넷 주소 계열(AF_INET 또는 AF_INET6)에 대해 TCP(전송 제어 프로토콜)를 사용합니다.
SOCK_DGRAM2 고정된(일반적으로 작은) 최대 길이의 연결이 없고 신뢰할 수 없는 버퍼인 데이터그램을 지원하는 소켓 유형입니다. 이 소켓 유형은 인터넷 주소 패밀리(AF_INET 또는 AF_INET6)에 대해 UDP(사용자 데이터그램 프로토콜)를 사용합니다.
SOCK_RAW 응용 프로그램이 다음 상위 계층 프로토콜 헤더를 조작할 수 있도록 하는 원시 소켓을 제공하는 소켓 유형입니다. IPv4 헤더를 조작하려면 소켓에 IP_HDRINCL 소켓 옵션을 설정해야 합니다. IPv6 헤더를 조작하려면 소켓에 IPV6_HDRINCL 소켓 옵션을 설정해야 합니다.
SOCK_RDM4 신뢰할 수 있는 메시지 데이터그램을 제공하는 소켓 유형입니다. 이 유형의 예는 Windows의 PGM(Pragmatic General Multicast) 멀티캐스트 프로토콜 구현이며, 종종 안정적인 멀티캐스트 프로그래밍 이라고 합니다 . 유형 값은 Reliable Multicast Protocol이 설치된 경우에만 지원됩니다.
SOCK_SEQPACKET5 데이터그램을 기반으로 의사 스트림 패킷을 제공하는 소켓 유형입니다.

 

Windows 소켓 2에서 새로운 소켓 유형이 도입되었습니다. 응용 프로그램은 WSAEnumProtocols 기능 을 통해 사용 가능한 각 전송 프로토콜의 속성을 동적으로 검색할 수 있습니다 . 따라서 애플리케이션은 주소 패밀리에 대해 가능한 소켓 유형 및 프로토콜 옵션을 결정하고 이 매개변수를 지정할 때 이 정보를 사용할 수 있습니다. Winsock2.h  Ws2def.h 헤더 파일 의 소켓 유형 정의는 새로운 소켓 유형, 주소 패밀리 및 프로토콜이 정의됨에 따라 주기적으로 업데이트됩니다.

Windows 소켓 1.1에서 가능한 유일한 소켓 유형은 SOCK_DGRAM  SOCK_STREAM 입니다.

 

[in] protocol

사용할 프로토콜입니다. 프로토콜 매개변수에 대한 가능한 옵션은 지정된 주소 패밀리 및 소켓 유형에 따라 다릅니다. 프로토콜 에 대한 가능한 값 은 Winsock2.h  Wsrm.h 헤더 파일 에 정의되어 있습니다.

Windows Vista 이상용으로 출시된 Windows SDK에서 헤더 파일의 구성이 변경되었으며 이 매개변수는 Ws2def.h 헤더 파일 에 정의된 IPPROTO 열거 유형 의 값 중 하나일 수 있습니다. Ws2def.h 헤더 파일은 Winsock2.h 에 자동으로 포함되며 직접 사용해서는 안 됩니다.

값이 0으로 지정되면 호출자는 프로토콜을 지정하지 않고 서비스 공급자가 사용할 프로토콜 을 선택합니다.

af 매개변수 가 AF_INET 또는 AF_INET6이고 유형  SOCK_RAW 인 경우 프로토콜 에 대해 지정된 값 은 IPv6 또는 IPv4 패킷 헤더의 프로토콜 필드에 설정됩니다.

다른 많은 값이 가능하지만 아래 표에는 프로토콜 에 대한 공통 값이 나열 되어 있습니다.

규약의미
IPPROTO_ICMP1 ICMP(인터넷 제어 메시지 프로토콜). af 매개변수가 AF_UNSPEC , AF_INET 또는 AF_INET6 이고 유형 매개변수가 SOCK_RAW 이거나 지정되지 않은 경우 가능한 값 입니다. 프로토콜 값은 Windows XP 이상에서 지원됩니다.
IPPROTO_IGMP2 IGMP(인터넷 그룹 관리 프로토콜). af 매개변수가 AF_UNSPEC , AF_INET 또는 AF_INET6 이고 유형 매개변수가 SOCK_RAW 이거나 지정되지 않은 경우 가능한 값 입니다. 프로토콜 값은 Windows XP 이상에서 지원됩니다.
BTHPROTO_RFCOMM Bluetooth 무선 주파수 통신(Bluetooth RFCOMM) 프로토콜. af 매개변수가 AF_BTH 이고 유형 매개변수가 SOCK_STREAM 일 때 가능한 값 입니다. 프로토콜 값은 Windows XP SP2 이상에서 지원됩니다.
IPPROTO_TCP6 전송 제어 프로토콜(TCP). af 매개변수가 AF_INET 또는 AF_INET6 이고 유형 매개변수가 SOCK_STREAM 인 경우 가능한 값 입니다.
IPPROTO_UDP17 UDP(사용자 데이터그램 프로토콜). af 매개변수가 AF_INET 또는 AF_INET6 이고 유형 매개변수가 SOCK_DGRAM 인 경우 가능한 값 입니다.
IPPROTO_ICMPV658 ICMPv6(인터넷 제어 메시지 프로토콜 버전 6). af 매개변수가 AF_UNSPEC , AF_INET 또는 AF_INET6 이고 유형 매개변수가 SOCK_RAW 이거나 지정되지 않은 경우 가능한 값 입니다. 프로토콜 값은 Windows XP 이상에서 지원됩니다.
IPPROTO_RM113 안정적인 멀티캐스트를 위한 PGM 프로토콜. af 매개변수가 AF_INET 이고 유형 매개변수가 SOCK_RDM 일 때 가능한 값 입니다. Windows Vista 이상용으로 출시된 Windows SDK에서는 이 프로토콜을 IPPROTO_PGM 이라고도 합니다. 프로토콜 값은 Reliable Multicast Protocol이 설치된 경우에만 지원됩니다.

반환 값

오류가 발생하지 않으면 socket 은 새 소켓을 참조하는 설명자를 반환합니다. 그렇지 않으면 INVALID_SOCKET 값이 반환되고 WSAGetLastError 를 호출하여 특정 오류 코드를 검색할 수 있습니다 .

에러 코드의미
WSANOINITIALIZED 이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다.
WSAENETDOWN 네트워크 하위 시스템 또는 관련 서비스 공급자가 실패했습니다.
WSAEAFNOS 지원 지정된 주소 계열은 지원되지 않습니다. 예를 들어, 응용 프로그램이 AF_IRDA 주소 계열 에 대한 소켓을 만들려고 했지만 적외선 어댑터와 장치 드라이버가 로컬 컴퓨터에 설치되어 있지 않습니다.
월세인프로그레스 차단 Windows 소켓 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 기능을 처리하고 있습니다.
WSAEMFILE 더 이상 소켓 설명자를 사용할 수 없습니다.
와세인발 잘못된 인수가 제공되었습니다. af 매개변수가 AF_UNSPEC 으로 설정 되고 유형  프로토콜 매개변수가 지정되지 않은 경우 이 오류가 리턴됩니다 .
WSAEINVALIDPROVIDER 서비스 공급자가 2.2 이외의 버전을 반환했습니다.
WSAEINVALIDPROCTABLE 서비스 공급자가 WSPStartup 에 유효하지 않거나 불완전한 프로시저 테이블을 반환했습니다 .
와새노부프 사용 가능한 버퍼 공간이 없습니다. 소켓을 생성할 수 없습니다.
WSAEPROTONOS 지원 지정된 프로토콜이 지원되지 않습니다.
WSAEPROTOTYPE 지정된 프로토콜은 이 소켓에 대해 잘못된 유형입니다.
WSAEPROVIDERFAILEDINIT 서비스 제공자가 초기화에 실패했습니다. 이 오류는 계층화된 서비스 공급자(LSP) 또는 네임스페이스 공급자가 부적절하게 설치되었거나 공급자가 올바르게 작동하지 않는 경우 반환됩니다.
WSAESOCKTNOS 지원 지정된 소켓 유형은 이 주소 패밀리에서 지원되지 않습니다.
728x90
반응형

'Visual Studio > Microsoft MFC 도움말' 카테고리의 다른 글

windowFromPoint 함수 도움말  (0) 2022.10.26
GetSystemMetrics 함수 설명서 링크  (0) 2022.09.14
SOCKADDR_IN 구조  (0) 2022.08.21
DragQueryFile  (0) 2022.07.23
BITMAPFILEHEADER 구조체  (0) 2022.07.14
Comments