错误:C4996: ‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
环境:VS2019
sockaddr_in serverSi;
serverSi.sin_family = AF_INET;
serverSi.sin_port = htons(12345);
serverSi.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
编程时会出现如题的错误,错误的原因在于从VS2013版本以上开始支持新的函数,使用旧的函数会报错。
这里推荐使用新的函数替换老的函数。
1.可以修改VS配置,使其支持老的函数
关闭SDL检查2 增加预处理 _WINSOCK_DEPRECATED_NO_WARNINGS
3.使用推荐的新函数
在使用新函数时需要添加头文件:
windows下:
#include <WS2tcpip.h>
linux下:
#include <sys/socket.h>
#include <netinet/in.h>
#include<arpa/inet.h>
新函数的使用方法如下:
sockaddr_in serverSi;
serverSi.sin_family = AF_INET;
serverSi.sin_port = htons(12345);
inet_pton(AF_INET, "127.0.0.1", &serverSi.sin_addr.s_addr)