【问题】

vs2015写socket客户端时出现,(这是第二次遇到这个问题了上次vs2017,必须记一下,方便自己以后查看:P)

SOCKADDR_IN ClientAddr;
ClientAddr.sin_family = AF_INET;
ClientAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);
ClientAddr.sin_port = htons(PORT);
报错:error C4996: ‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings

【原因】

在VS2013以后的版本中,增加了inet_pton()、InetPton()之类的新函数,用于IP地址在“点分十进制”和“二进制整数”之间转换,并且能够处理ipv4和ipv6。而inet_addr是老函数,高版本VS在编译时默认使用了新函数,所以会报该错误。

【解决方法一】

用所提示的新函数代替inet_addr函数。

【解决方法二】

修改VS配置,告诉它我就要旧函数

1.修改方法:项目 -> 属性 -> C/C++ ->常规->SDL检查,将“是”改为“否”,即可。
2.文件的属性页 -> “预处理器” -> 将“_CRT_SECURE_NO_WARNINGS”加上
————————————————
版权声明:本文为CSDN博主「Rani_zZ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42731241/article/details/96143934

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐