socket编程inet_ntoa()函数ip类型转换时报错 C4996 'inet_ntoa': Use inet_ntop() or InetNtop() instead

在Windows10平台socket编程时使用inet_ntoa()函数时报错:

错误C4996 'inet_ntoa': Use inet_ntop() or InetNtop()
instead or define dd0()()_WINSOCK_DEPRECATED_NO_WARNIN

原因:

inet_ntoa()在Windows10平台vs中已被弃用,提示我们用inet_ntop() or InetNtop(),inet_ntop() 
函数的头文件是Ws2tcpip.h,因此我们只需要包含头文件#include <WS2tcpip.h>即可。
  1. inet_pton函数
    函数原型
    INT WSAAPI InetPton(
    In INT Family,
    In PCTSTR pszAddrString,
    Out PVOID pAddrBuf
    );

将点分十进制串转换成网络字节序二进制值,此函数对IPv4地址和IPv6地址都能处理。
第一个参数可以是AF_INET或AF_INET6:
第二个参数是一个指向点分十进制串的指针:
第三个参数是一个指向转换后的网络字节序的二进制值的指针。

	#include <iostream>
	#include <WS2tcpip.h>
	#include <WinSock2.h>
	#pragma comment(lib,"Ws2_32.lib")
	
	int main()
	{
		WSADATA ws_adata;
		WORD w_Version = MAKEWORD(2, 2);
		if (WSAStartup(w_Version, &ws_adata)) {
			std::cout << "WSAStartup fail!\n";
		}
		in_addr addr;
		if (!inet_pton(AF_INET, "192.168.1.15", &addr.S_un.S_addr)) {
			std::cout << "inet_pton fail!\n"; // inet_pton 返回1转换成功,0失败
		}
		return 1;
	}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值