您的位置:首页 > 理论基础 > 计算机网络

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

2015-04-23 13:17 441 查看

字节排序函数

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

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//传入参数,指向协议名的指针
)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: