- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Windows 上寻找一个头文件,我可以用它来获取 C 中的 ntohl 函数,但 Winsock2.h 对我不起作用。有谁知道其他什么头文件可以提供这个?
以下是我尝试包含 Winsock2.h 时遇到的一些错误
C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(1045): error #2120: Redeclaration of 'getservbyport', previously declared at C:\Program Files (x86)\PellesC\Include\Win\winsock.h(468); expected 'PSERVENT __stdcall function(int, const char *)' but found 'struct servent * __stdcall function(int, const char *)'.
C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(135): error #2123: Redefinition of 'hostent', previously defined at C:\Program Files (x86)\PellesC\Include\Win\winsock.h(91).
C:\Program Files (x86)\PellesC\Include\Win\ws2def.h(39): error #1050: Redefinition of macro 'AF_IPX'.
C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(1310): error #2121: Redeclaration of 'LPSOCKADDR_IN'.
最佳答案
它位于 winsock2.h
中,按照the MSDN docs并且,来 self 的开发系统(在 C:\Program files (x86) Microsoft SDKs\Windows\v7.0A\Include\Winsock2.h
中):
WINSOCK_API_LINKAGE u_long WSAAPI ntohl (__in u_long netlong);
我不确定为什么这对你来说“不起作用”。如果您收到错误消息,则需要将其发布。
<小时/>根据您对 winsock2.h
遇到问题的原因的问题编辑,您似乎正在尝试同时包含 winsock.h
和 winsock2.h
- 这很少是一个好主意:-)它们实际上从根本上不兼容,winsock2
是具有额外优点的更高版本。
不幸的是,它并不总是在您明显的控制之下,因为在大多数情况下 windows.h
会自动为您包含 winsock.h
。
根据内存,解决此问题的一种方法是在包含 windows.h
之前定义 WIN32_LEAN_AND_MEAN
。这将阻止包含一些较少使用的 header 。
另一种方法是在包含 windows.h
之前定义 _WINSOCKAPI_
- 这将阻止包含 winsock.h
。
第三种(可能是更好的)方法是简单地将 winsock2.h
包含在 之前 windows.h
中。 winsock2.h
定义了 _WINSOCKAPI_
,因此与上一段具有相同的效果。
关于c - 在哪里可以找到 ntohl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355785/
在以下关于小端和大端的程序中: char *s = "1234"; printf("%08X\n",*(int *)s); //big endian int little = ntohl(*s); p
我正在 Windows 上寻找一个头文件,我可以用它来获取 C 中的 ntohl 函数,但 Winsock2.h 对我不起作用。有谁知道其他什么头文件可以提供这个? 以下是我尝试包含 Winsock2
我一直在想,为什么我在使用write/read的时候不用htons/ntohl呢? (至少到目前为止我看到的所有例子都没有。) 我怎么知道接收到的字节具有正确的字节顺序? 最佳答案 好吧,如果您打算在
ip=ntohl(*(uint32_t*)PQgetvalue(result, i, 0)); 这段代码是什么意思? 我的猜测是此代码从 PostgreSQL 数据库(其类型为 uint32_t)获取
我正在编写一个跨平台客户端,在提取使用的文件中,它对每个文件使用 IEEE 802.3 以太网 CRC-32 校验和。我像这样对所有文件运行此检查: if(s3d_meta_block.crc !=
编辑:老实说,我不知道错误发生在哪里,所以我只添加大部分相关代码,不确定这是否有帮助 所以基本上我有两个基本的服务器和客户端进程。用户指定命令,客户端进程将消息长度发送给服务器,服务器执行命令并返回响
如果我对一个已经在主机字节顺序中的整数使用 ntohl() 会导致任何问题吗? 如果不是,ntohl() 函数如何知道它的参数已经在主机字节顺序中? 最佳答案 你的问题没有任何意义。对于 ntohl
我正在尝试使用适当字节交换的值来初始化一个全局范围的 const 变量。 #include #include #include const uint32_t a = ntohl(0x112233
我有一个项目需要在 Windows、Linux 和 VxWorks 上构建。该项目建立在 Linux 和 Windows 上,但为 VxWorks 交叉编译。为了处理跨多个平台的字节序,它使用 nto
我需要将网络字节顺序的结构 s1 复制到主机字节顺序的另一个结构 s2 我看到以下两种方法给出了不同的输出。我认为 method2 是正确的做法。我对么 ?如果是,我不明白为什么会有不同的输出。可能
我在某些主机上遇到了 socket.ntohl() 函数的问题。它在所有类似的主机上都是可重复的;使用 Python 2.4.2 的 32 位机器。 >>> socket.ntohl(16777215
我正在编写一个将保存和加载数据的小程序,它将是命令行(而不是交互式),因此没有必要包含我不需要包含的库。 当直接使用套接字时,我只是通过包含套接字来获得ntohl 函数,但是在这里我不需要套接字。我没
我正在尝试使用 unix 套接字来测试将一些 udp 数据包发送到本地主机。 据我了解,在设置 ip 地址和端口以发送数据包时,我会将转换为网络字节顺序的值填充到我的 sockaddr_in 中。我在
我尝试在 C 语言的服务器应用程序中打印客户端端口。但是我得到客户端端口的负数,这是什么奇怪的行为:-/任何人都知道哪里可能有问题吗? 导致问题的部分代码: struct sockaddr_in cl
C# 中是否有网络到主机的转换函数?谷歌搜索并没有找到太多。 :P 最佳答案 IPAddress.HostToNetworkOrder和 IPAddress.NetworkToHostOrder ?
关于htonl和ntohl。这两行代码中的任何一行何时将计算为false。 htonl(x) == ntohl(x); htonl(ntohl(x)) == htonl(htonl(x)); 换句
当我查找 htonl 的示例时,它总是返回一个 uint32_t。但是,当我使用 Winsock2.h 在 VS2015 中调用 htonl 时,它返回一个 u_long。 在我的机器上,当我为 32
我需要在可能位于不同平台的服务器和客户端之间发送一个枚举缓冲区。 但是枚举的大小取决于平台,我应该调用哪个函数? (htons() 或 htonl()),例如以下枚举: typedef enum f_
函数 ntohl 为我提供了一个链接器错误: error LNK2001: unresolved external symbol _ntohl@4 fatal error LNK1120: 1 unr
我在小端 [LE] 机器 [Linux,英特尔处理器] 上运行了以下程序。我无法解释下面代码片段中的 3 个输出。由于机器是 LE,a 的值存储为 0x78563412。打印时,它显示的是它的实际值。
我是一名优秀的程序员,十分优秀!