为什么在C中将ushort端口号从HTON转换为NTOH会产生不同的结果? 我发送一个端口号,在socket上加上2字节,C++客户端在用HtNon将它转换成网络字节。
当使用C服务器接收时,我使用IPAddress.NetworkToHostOrder将其转换,并且数字完全不同为什么在C中将ushort端口号从HTON转换为NTOH会产生不同的结果? 我发送一个端口号,在socket上加上2字节,C++客户端在用HtNon将它转换成网络字节。,c++,winapi,networking,C++,Winapi,Networking,当使用C服务器接收时,我使用IPAddress.NetworkToHostOrder将其转换,并且数字完全不同 htons(8085) -> 38175 ?? IPAddress.NetworkToHostOrder(38175) -> ?? 那是什么原因 与BSD sockets API不同,BSD sockets API中的每个函数都有一个单独的名称,在.NET中,NetworkToHostOrder方法是重载的,并且可以根据输入的大小执行ntohs或ntohl 当C看到一个文
htons(8085) -> 38175 ??
IPAddress.NetworkToHostOrder(38175) -> ??
那是什么原因 与BSD sockets API不同,BSD sockets API中的每个函数都有一个单独的名称,在.NET中,NetworkToHostOrder方法是重载的,并且可以根据输入的大小执行ntohs或ntohl 当C看到一个文本时,除非它不适合,否则传递一个32位整数输入int是默认类型,因此得到的结果与ntohl而不是ntohs相同 如果需要ntohs行为,请更改输入类型,例如
IPAddress.NetworkToHostOrder((short)38175)
与BSD sockets API不同,BSD sockets API中的每个函数都有一个单独的名称。在.NET中,NetworkToHostOrder方法是重载的,根据输入的大小,可以执行ntohs或ntohl 当C看到一个文本时,除非它不适合,否则传递一个32位整数输入int是默认类型,因此得到的结果与ntohl而不是ntohs相同 如果需要ntohs行为,请更改输入类型,例如
IPAddress.NetworkToHostOrder((short)38175)
谢谢,现在说得通了谢谢,现在说得通了