解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题
Posted sanqima
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题相关的知识,希望对你有一定的参考价值。
今天在使用Windows Socket C++编程时,弹出"‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS"问题,如图(1)所示:

问题原因:socket2已经丢弃inet_ntoa()、inet_addr()这些老版本函数,当在Socket2上调用这些老版本(Socket1版本)函数时,warning变成error了。
解决方法:在代码开头加个 #pragma warning(disable:4996) ,用于屏蔽warning,提高兼容性。
修改前
#include <stdio.h>
#include <winsock2.h>
#include <Ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")
修改后
#include <stdio.h>
#include <winsock2.h>
#include <Ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")
//添加此句,屏蔽"warning作为error", 提高兼容性
#pragma warning(disable:4996)


以上是关于解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题的主要内容,如果未能解决你的问题,请参考以下文章