J. *_*Doe 1 c++ networking winapi
我在使用htons将其转换为网络字节之前,通过套接字(c ++客户端)发送端口号(ushort,2个字节).
当使用C#服务器接收时,我正在使用它进行转换,IPAddress.NetworkToHostOrder数字完全不同.
htons(8085) -> 38175 ??
IPAddress.NetworkToHostOrder(38175) -> ??
Run Code Online (Sandbox Code Playgroud)
这是什么原因?
不同于BSD套接字API,那里的每个功能的单独的名称,在.NET的NetworkToHostOrder方法过载,并且可以执行任一ntohs或ntohl对输入的大小取决于.
你传递一个32位整数输入(int是默认类型时,C#看到文字,除非它不适合),因此你会得到相同的结果ntohl不是ntohs.
如果您想要ntohs行为,请更改输入类型,例如
IPAddress.NetworkToHostOrder((short)38175)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
339 次 |
| 最近记录: |