'inet_addr':改用inet_pton()或InetPton()或定义_WINSOCK_DEPRECATED_NO_WARNINGS
'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS
我正在使用Visual Studio 2015,并试图编译在从VS 2013更新之前已经工作的代码。
"inet_addr":改用inet_pton()或InetButton(),或定义_WINSOCK_DEPRECATED_NO_WARNINGS
在此代码中:
partner.sin_addr.s_addr = inet_addr(ip.c_str());
我试图使用上面提到的函数,但它们没有定义。我试图在许多不同的地方定义宏,但什么也没发生。另一个线程说我应该包含Ws2tcpip.h而不是WinSock2&添加Ws2_32.lib。我已经添加了库,当我使用include时,没有发生任何事情。发生了什么事?!
只是为了明确转换。假设您有使用不推荐使用的inet_addr的代码,如本例所示:
RecvAddr.sin_addr.s_addr = inet_addr("192.168.1.1");
它可以转换为更新的InetButton,如下所示:
InetPton(AF_INET, _T("192.168.1.1"), &RecvAddr.sin_addr.s_addr);
_T宏可防止出现"const char与PCWSTR不兼容"错误。
可以使用InetButton函数将ip字符串转换为in_addr结构。它是这样使用的:
InetPton(AF_INET, strIP, &ipv4addr)
您需要包含"Ws2tcpip.h"头文件,使用库"Ws2_32.lib"和DLL"Ws2.32.DLL"。
您可以尝试
#pragma warning(disable:4996)
用于使用CCD_ 1。
确保在所有包含之前定义_WINSOCK_DEPRECATED_NO_WARNINGS。
相关文章:
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- WinSock Non-Blocking I/O
- 使用 winsock 接收 http 请求
- OMNeT++:未定义对 'typeinfo for inet::IMobility' 的引用
- INET无线接口表模块参数
- 如何查找 winsock.h 在 Visual Studio 中的包含位置
- 在Linux上交叉编译Windows应用程序时如何链接到Winsock?
- C++低吞吐量 winsock TCP 测试应用程序
- 无法将Omnetpp::cPacket强制转换为Inet::Packet
- Winsock 数据不是从 IP 检索的,而是从普通 URL 检索的
- 错误:10035 Winsock发送
- 如何使用c++在winsock中从客户端向服务器发送大字符串
- OMNET++:如何在INET 4.0中获取帧的源MAC地址?
- 如何使用winsock在c++应用程序中实现安全套接字通信
- 如何为winsock的send()函数构造constchar*缓冲区
- C++WinSock选择本地接口进行连接
- 使用全局 IP 地址时,C++ winsock 2 应用程序中的代码是否必须更改?
- 如何在INET的应用层中发送广播数据包
- Omnet 和 Inet 链接错误:未定义对 typinfo 的引用