网络字节序和主机序相互转换
#include<netinet/in.h>
uint16_t htons(uint16_t host16bitvalue);//主机序转网络字节序 16位
uint32_t htonl(uint32_t host16bitvalue);//主机序转网络字节序 32位
uint16_t ntohs(uint16_t host16bitvalue);//网络字节序序转主机 16位
uint32_t ntohl(uint32_t host32bitvalue);//网络字节序序转主机 32位
h代表host,n代表network,s代表short,l代表long
IPv4点分十进制和网络字节序的转换
#include <arpa/inet.h>
int inet_aton(const char *strptr, struct in_addr *addrptr);//点分十进制转网络字节序
char *inet_ntoa(struct in_addr inaddr);//网络字节序转点分十进制
IPv4或者IPv6点分十进制和网络字节序的转换
#include <arpa/inet.h>
int inet_pton(int family,const char *strptr, void *addrptr);//点分十进制转网络字节序
const char *inet_ntop(int family,const void *addrptr, char *strptr,size_t len);//网络字节序转点分十进制
#include <sys/socket.h>
int getsockname(int sockfd,struct sockaddr *localaddr,socklen_t *addrlen);
int getpeername(int sockfd,struct sockaddr *localaddr,socklen_t *addrlen);
来源:oschina
链接:https://my.oschina.net/u/4394291/blog/3226249