Это действительно зависит от того, что делает ваша программа.
Адрес IPV6 занимает 16 байтов, а не четыре, используемые IPV4. Строковые представления также различны.
Для создания сокета это практически тоже самое:
sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
Просто измените PF_INET на PF_INET6.
Подключение немного отличается:
nRet = connect(sock,
reinterpret_cast<SOCKADDR *>(&SockAddr),
sizeof(SockAddr));
В IPV4 SockAddr - это структура sockaddr_in, в IPV6 - это sockaddr_in6.
Вы должны использовать что-то вроде getaddrinfo () для инициализации SockAddr, так как gethostbyname () не работает для IPV6.
bind (), listen () и accept () больше похожи. После установки сокета чтение, запись и т. Д. Не зависят от версии IP.
Если вы работаете на более высоком уровне (например, HTTP), ваша программа не должна нуждаться в каких-либо изменениях, но может потребоваться ссылка на разные библиотеки.