【tcp-ip学习总结】一些常用的winsock API函数

字节排序函数

将主机字节顺序的数转化为网络字节顺序的函数

htonl()函数 返回一个32位的tcp/ip网络字节顺序的数
例如: server.sin_addr.s_addr = htonl(INADDR_ANY);

U_long htonl(
    U_long hostlong//一个32位的数,将要转为网络字节顺序
)

htons()函数,里面传得一般式端口号
例如: server.sin_port = htons(8888);

u_short htons(
    u_short hostshort//一般传得是端口号
)

将网络字节顺序的数转化为主机字节顺序的函数

ntohl()函数

U_long ntohl(
    u_long netlong//一般传得网络地址
)

ntohs()函数 一般传的是网络的端口

u_short ntohs(
    u_short netshort//网络端口
)

ip地址转换函数

将.分十进制的ip地址转换为网络字节顺序的ip地址

inet_addr()函数
ser.sin_addr.s_addr = inet_addr(“127.0.0.1”);

unsiged long inet_addr(
    const char FAR*cp//传入的时点形式的IP地址。例如127.0.0.1
)

将网络顺序的IP地址转换为.分十进制数表示的ip地址

inet_ntoa()函数
inet_ntoa(cli.sin_addr)

inet_ntoa(
    struct in_addr in
)

网络信息获取的函数

获得主机名的函数

-gethostname()

int gethostname(
    char FAR*name,//指向将要存放缓冲区的指针,调用完以后主机名被存入这个缓冲区
    int namelen//缓冲区长度
)

获得与套接口相连的远程协议地址

getpeername()函数

int getpeername(
    SOCKET s,//传入参数,已建立连接的套接口
    struct sockaddr FAR* name,//传出参数,指向返回远程协议的地址
    int FAR* namelen//传出参数,远程协议地址长度
)

获得套接口本地协议地址

getsockname()函数

int getsockname(
    SOCKET s,//传入参数,已连接的套接口
    struct sockaddr FAR*name,//传出参数,返回本地协议的指针
    int FAR* namelen//传出参数,本地协议地址长度
)

根据主机名获取主机信息

gethostbyname()函数

struct hostent FAR*gethostbyname (
    const char FAR* name
)

根据主机地址获取主机信息

gethostbyaddr()函数

struct hostent FAR* gethostbyaddr(
    const char FAR* addr,//传入参数,网络字节顺序地址的指针
    int len,//传入参数,地址的长度 ipv4则为4
    int type//传入参数,地址类型,例如 AF_INET
)

根据协议名取得主机协议信息

getprotobyname()

struct protoent FAR *getprotobyname(
    const char FAR*name//指向协议名的指针
)

根据协议号取得主机协议信息

getprotobynumber()函数

struct protoent FAR*getprotobynumber(
    int number//以主机字节排列的协议号
)

根据端口号取得相关服务的信息

getservbyport()函数

struct servent FAR* getservbyport(
    int port,//传入参数,给定的端口号,以网络字节顺序排列
    const char FAR*proto//传入参数,指向协议名的指针
)

你可能感兴趣的:(tcp-ip/HTTP)