You have to imagine ipv4 and ipv6 is running on an isolated separate network. Typically no translation between ipv4 and ipv6.
A server with only ipv4 address can only be access by client with ipv4 address
A server with only ipv6 address can only be access by client with ipv6 address
A server with both ipv4 and ipv6 address can be access by ipv4 only client, ipv6 only client or a client with both ipv4 and ipv6, if both ipv4 and ipv6 is available, modern software will use ipv6 as priority.
For software application, it need to design to support both protocol. For simple apps eg. Ping or traceroute, there is ping6 and traceroute6 develop to support ipv6 network, in Linux firewall, there is iptables and ip6tables, iptables take are the ipv4 firewall rules, while ip6tables take care the ipv6 firewall rules.
Hope this information helps.