boost 是否有可移植的方式来使用 ntohl/htonl/ntohs/htons 类型函数?
我正在使用 UDP,特别是 boost::asio::ip::udp::socket 套接字,如果有帮助的话?
头文件是什么?
在 boost 下,我需要哪些标头/类来处理 UDP 的网络字节排序?
I am using UDP in particular boost::asio::ip::udp::socket sockets if that helps?
What is the header file?
What headers/classes do I need to handle network byte ordering with the UDP under boost?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
刚刚发现
#include
就足够了,因为这会拉入所有平台相关的标头并提供对htonl/ntohl
的访问,这正是我需要。感谢大家的建议。
Just found it is enough to
#include <boost/asio.hpp>
as this pulls in all the platform dependent headers and gives access tohtonl/ntohl
which is exactly what I need.Thanks all for the suggestions.
boost::asio::detail::socket_ops::host_to_network_short
在 boost/asio/detail/socket_ops.hpp
boost::asio::detail::socket_ops::host_to_network_short
in boost/asio/detail/socket_ops.hpp
POSIX.1-2001 标准是
&
,在 Windows 上,您有 2 个堆栈可供选择
或
&
,后者现在是首选,因为它支持 Unicode 命名,但请注意它们不兼容。2001 年之前的平台可能需要其他标头,例如
。POSIX.1-2001 standard is
<sys/types.h>
&<netinet/in.h>
, on Windows you have 2 stacks to choose from<winsock2.h>
or<ws2tcpip.h>
&<winsock2.h>
, the latter is now the preferred choice as it supports Unicode naming but note that they are incompatible.Platforms pre-2001 might require other headers such as
<arpa/inet.h>
.对于 Windows:
对于 *nix:
快速搜索没有提供任何与 boost 相关的内容。
希望其他人能找到一些东西。
For Windows:
For *nix:
A quick search did not provide anything resonable in boost.
Hopefuuly somebody else will find somthing.