我正在维护一个可以在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/