c++ - 在C++中将IPv6转换为IPv4格式?

标签 c++ c ipv6 ipv4

我正在维护一个可以在IPv4格式上正常运行的旧系统,发现请求者来自IPv6时,侦听器未触发。我有以下代码行

    SOCKADDR_IN SocketAddr;
    INT nBufferSize=sizeof(SocketAddr);
    hConnectSocket=WSAAccept(m_hListenSocket,(SOCKADDR *)&SocketAddr,&nBufferSize,NULL,NULL);

     
    if (hConnectSocket==INVALID_SOCKET) return false;
我也用谷歌搜索,我知道我应该将SOCKADDR_IN6用于IPv6。是否可以将SOCKADDR_IN6转换为SOCKADDR_IN格式,以便其余应用程序正常工作?
谢谢。

最佳答案

您无法将所有IPv6地址都转换为IPv4-IPv6地址比IPv4地址更多。解决此问题的最佳方法是更新/升级您的应用程序,使其能够理解和存储IPv6地址。这个thread可能有用。

关于c++ - 在C++中将IPv6转换为IPv4格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62947830/

相关文章:

c++ - 戈朗 : call Windows DLL functions

c++ - 你会使用 num%2 还是 num&1 来检查一个数字是否是偶数?

c++ - 为什么有些代码文件使用 close() 而没有包含 unistd.h?

c - 从文本文件中读取结构

ios - 在 iOS 中通过 ipv4 而不是 ipv6 路由网络

c++ - 模板类参数继承

c - 在C中使用字符串作为数组中的索引

python - 使用 tornado web 服务器运行 hello world 时出现问题(Python 2.5,Windows 7)

ios - Apple ios App拒绝了ipv6不支持的URL,

c - 我应该如何在c文件中包含用extern定义的变量