在socket编程时,会出现指定了ip,端口号,却连不上,这是因为网络地址跟本地主机地址的字符顺序不一样导致的。
在linux下提供了一些操作函数,如下:
unsigned long int htonl(unsigned long int hostlong);
用来将参数指定的32位hostlong 转换成网络字符顺序。
unsigned short int htons(unsigned short int hostshort);
用来将参数指定的16位hostshort转换成网络字符顺序。
unsigned long int inet_addr(const char *cp);
用来将参数cp所指的网络地址字符串转换成网络所使用的二进制数字。
网络地址字符串是以数字和点组成的字符串,例如:“163.13.132.68”。
int inet_aton(const char * cp,struct in_addr *inp);
用来将参数cp所指的网络地址字符串转换成网络使用的二进制的数字,然后存于参数inp所指的in_addr结构中。
char * inet_ntoa(struct in_addr in);
用来将参数in所指的网络二进制的数字转换成网络地址,然后将指向此网络地址字符串的指针返回。
unsigned long inet_network(const char *addr);
这个函数需要一个在参数addr中包含一个点分隔的地址输入字符串。
返回值是主机顺序的IP地址的32位值。
The inet_lnaof() function returns the local host address part of
the Internet address in. The local host address is returned in local host byte order.
The inet_netof() function returns the network number part of the Internet Address in.
The network number is returned in local host byte order.
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。