해당 링크는 IPv4를 사용한다고 가정하고 작성한 것이다. 여기에서는 IPv6를 지원하기 위한 코드 수정 방법을 소개한다.
ws2tcpip.h
헤더 파일을 포함한다.
소켓 생성 시 AF_INET
대신 AF_INET6
을 사용한다.
소켓 주소 구조체로 SOCKADDR_IN
대신 SOCKADDR_IN6
를 사용한다.
INADDR_ANY
(0으로 정의됨) 값은 in6addr_any
(역시 0으로 정의됨; 소문자인 것을 주의)로 변경한다.IPv4만을 지원하는 주소 변환 함수를 IPv4/IPv6 지원함수로 대체한다.
데이터 전송 함수는 기존의 send()
/recv()
함수를 그대로 사용한다.
위의 규칙에 따라 변경된 코드는 IPv6만을 지원한다.
즉, 서버와 클라이언트 코드를 모두 변경한 경우에만 상호 통신이 가능한다.
IPv4 코드를 IPv6 코드로 변환한 코드는 해당 링크에 있다.
실행 방법은 기존 IPv4 코드 실행 방법과 같다.
참고 자료
김성우 저, "TCP/IP 윈도우 소켓 프로그래밍", 한빛아카데미, 2018