SocketAddress 클래스에는 생성자가 두 개 있다. 첫째 것은 4바이트 IP 주소와 포트 번호를 받아 이를 내부 sockaddr 구조체의 값으로 채운다. 생성자는 주소 패밀리를 AF_INET으로 항상 지정하는데, 인자 자체가 IPv4 주소 체계일 때만 의미 있는 것이기 때문이다. IPv6를 지원하려면 다른 생성자를 하나 더 만들어 거기서 해당 값을 지정하면 된다.
둘째 생성자는 네이티브 sockaddr 구조체를 받아 내부 mSockAddr 필드에 복사한다. 네트워크 API가 sockaddr을 리턴했는데 이를 SocketAddress 객체로 래핑하고 싶을 때 유용하다.
GetSize() 함수는 내부의 sockaddr 길이를 넘겨야 하는 함수에 일일이 sizeof 코드를 쓰지 않아도 되도록 도와주는 함수이다.
맨 마지막의 소켓 주소에 대한 shared_ptr를 using으로 별칭 선언해 두면 여러 곳에서 소켓 주소를 공유해서 써야 할 때 메모리 정리를 신경 쓸 필요가 없어서 편리하다. 여기에 구현한 SocketAddress 클래스는 최소한의 기능만 감싸둔 것이지만, 이것을 시작점으로 해서 이후 예제에서 필요로 하는 기능을 추가하며 점점 살을 붙여갈 것이다.