考试复习期间匆忙整理,如有错误请在评论中指出。
第一类:套接字函数
功能:完成套接字的创建、关闭以及对套接字的命名和名字获取。
函数名 | 功能 |
---|---|
SOCKET socket (int af, int type, int protocol) | 创建套接字 |
int bind (SOCKET s, const struct sockaddr FAR *name, int namelen) | 给套接字绑定本地地址和端口 |
int closesocke (SOCKET s) | 关闭套接字 |
getpeername() | 获取指定套接字连接的对等方的地址和端口号 |
getsockname() | 获取指定套接字关联的地址和端口号 |
第二类:网络连接函数
功能:完成网络连接的建立与关闭。
函数名 | 功能 |
---|---|
int listen ( SOCKET s, int backlog ) | 在指定套接字上监听外来连接 |
int connect ( SOCKET s, const struct sockaddr FAR* name, int namelen ) | 在指定套接字上与远程主机建立连接 |
SOCKET accept ( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen ) | 确认外来连接,并将它与一个立即建立起来的数据套接字联系起来 |
int shutdown (SOCKET s,int how) | 关闭全双工连接中一个方向上的连接 |
第三类:数据传输函数
功能:完成数据的发送与接收。
函数名 | 功能 |
---|---|
int send ( SOCKET s, const char FAR* buf, int len, int flags) | 使用面向连接的套接字发送数据 |
int recv ( SOCKET s, char FAR* buf, int len, int flags) | 从一个面向连接的套接字上接收数据 |
int sendto (SOCKET s, const char* buf, int len, int flags, const sockaddr* to, int tolen) | 使用面向连接或无连接的套接字发送数据 |
int recvfrom (SOCKET s, char* buf, int len, int flags, sockaddr* from, int* fromlen) | 从一个面向连接或无连接的套接字上接收数据 |
第四类:字节顺序转换函数
功能:完成主机字节顺序和网络字节顺序之间的转换
函数名 | 功能 |
---|---|
htonl() | 将一个32位整数从主机字节序转换为网络字节序 |
htons() | 将一个16位整数从主机字节序转换为网络字节序 |
ntohl() | 将一个32位整数从网络字节序转换为主机字节序 |
ntohs() | 将一个16位整数从网络字节序转换为主机字节序 |
第五类:地址转换函数
功能:完成IP地址的点分十进制形式和二进制整数形式之间的转换。
函数名 | 功能 |
---|---|
u_long inet_addr(const char FAR *cp) | 将一个点分十进制的字符串ip转换成整数形式的 |
char* inet_ntoa ( struct in_addr in) | 将整数表示的ip转换成点分十进制的字符串的形式 |
第六类:套接字控制函数
功能:设置/获取套接字的选项;控制/检测套接字的工作状态。
函数名 | 功能 |
---|---|
getsockopt() | 获取与指定套接字相关的选项 |
setsockopt() | 设置与指定套接字相关的选项 |
ioctlsocket() | 为套接字提供控制 |
select() | 获得一组套接字的状态,以实现异步I/O操作 |
推荐文档: