TCP 서버-클라이언트(IPv6)

bolee·2022년 4월 7일
0

해당 링크는 IPv4를 사용한다고 가정하고 작성한 것이다. 여기에서는 IPv6를 지원하기 위한 코드 수정 방법을 소개한다.

IPv4 코드를 IPv6 코드로 변환하는 규칙

  1. ws2tcpip.h 헤더 파일을 포함한다.

  2. 소켓 생성 시 AF_INET 대신 AF_INET6을 사용한다.

  3. 소켓 주소 구조체로 SOCKADDR_IN 대신 SOCKADDR_IN6를 사용한다.

    • 구조체를 변경하면 구조체 필드명도 그에 따라 바꿔야한다.
    • 서버에서 주로 사용하는 INADDR_ANY(0으로 정의됨) 값은 in6addr_any(역시 0으로 정의됨; 소문자인 것을 주의)로 변경한다.
  4. IPv4만을 지원하는 주소 변환 함수를 IPv4/IPv6 지원함수로 대체한다.

  5. 데이터 전송 함수는 기존의 send()/recv() 함수를 그대로 사용한다.

주의사항

위의 규칙에 따라 변경된 코드는 IPv6만을 지원한다.
즉, 서버와 클라이언트 코드를 모두 변경한 경우에만 상호 통신이 가능한다.

IPv6로 변환된 코드

IPv4 코드를 IPv6 코드로 변환한 코드는 해당 링크에 있다.

실행 방법은 기존 IPv4 코드 실행 방법과 같다.

참고 자료
김성우 저, "TCP/IP 윈도우 소켓 프로그래밍", 한빛아카데미, 2018

0개의 댓글