- Unix套接字教程
- Unix套接字 - 首页
- Unix套接字 - 什么是套接字?
- Unix套接字 - 网络地址
- Unix套接字 - 网络主机名
- Unix套接字 - 客户端服务器模型
- Unix套接字 - 结构体
- Unix套接字 - 端口和服务
- Unix套接字 - 网络字节序
- Unix套接字 - IP地址函数
- Unix套接字 - 核心函数
- Unix套接字 - 辅助函数
- Unix套接字 - 服务器示例
- Unix套接字 - 客户端示例
- Unix套接字 - 摘要
- Unix套接字有用资源
- Unix套接字 - 快速指南
- Unix套接字 - 有用资源
- Unix套接字 - 讨论
Unix套接字 - 摘要
这是一个与套接字编程相关的全部函数列表。
端口和服务函数
Unix提供以下函数从`/etc/services`文件中获取服务名。
struct servent *getservbyname(char *name, char *proto) − 此调用接收一个服务名和一个协议名,并返回该服务的对应端口号。
struct servent *getservbyport(int port, char *proto) − 此调用接收一个端口号和一个协议名,并返回对应的服务名。
字节序函数
unsigned short htons (unsigned short hostshort) − 此函数将16位(2字节)数量从主机字节序转换为网络字节序。
unsigned long htonl (unsigned long hostlong) − 此函数将32位(4字节)数量从主机字节序转换为网络字节序。
unsigned short ntohs (unsigned short netshort) − 此函数将16位(2字节)数量从网络字节序转换为主机字节序。
unsigned long ntohl (unsigned long netlong) − 此函数将32位数量从网络字节序转换为主机字节序。
IP地址函数
int inet_aton (const char *strptr, struct in_addr *addrptr) − 此函数调用将指定的字符串(使用Internet标准点分十进制表示法)转换为网络地址,并将地址存储在提供的结构体中。转换后的地址将采用网络字节序(字节从左到右排列)。如果字符串有效,则返回1,否则返回0。
in_addr_t inet_addr (const char *strptr) − 此函数调用将指定的字符串(使用Internet标准点分十进制表示法)转换为适合用作Internet地址的整数值。转换后的地址将采用网络字节序(字节从左到右排列)。它返回一个32位二进制网络字节序IPv4地址,出错时返回INADDR_NONE。
char *inet_ntoa (struct in_addr inaddr) − 此函数调用将指定的Internet主机地址转换为Internet标准点分十进制表示法的字符串。
套接字核心函数
int socket (int family, int type, int protocol) − 此调用返回一个套接字描述符,您可以在以后的系统调用中使用它,或者在出错时返回-1。
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen) − connect函数由TCP客户端用来与TCP服务器建立连接。如果成功连接到服务器,此调用返回0,否则返回-1。
int bind(int sockfd, struct sockaddr *my_addr,int addrlen) − bind函数将本地协议地址分配给套接字。如果成功绑定到地址,此调用返回0,否则返回-1。
int listen(int sockfd, int backlog) − listen函数仅由TCP服务器调用以监听客户端请求。此调用在成功时返回0,否则返回-1。
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen) − accept函数由TCP服务器调用以接受客户端请求并建立实际连接。此调用在成功时返回非负描述符,否则返回-1。
int send(int sockfd, const void *msg, int len, int flags) − send函数用于通过流套接字或已连接的数据报套接字发送数据。此调用返回发送出的字节数,否则返回-1。
int recv (int sockfd, void *buf, int len, unsigned int flags) − recv函数用于通过流套接字或已连接的数据报套接字接收数据。此调用返回读取到缓冲区的字节数,否则在出错时返回-1。
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen) − sendto函数用于通过未连接的数据报套接字发送数据。此调用返回发送的字节数,否则返回-1。
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen) − recvfrom函数用于从未连接的数据报套接字接收数据。此调用返回读取到缓冲区的字节数,否则返回-1。
int close (int sockfd) − close函数用于关闭客户端和服务器之间的通信。此调用在成功时返回0,否则返回-1。
int shutdown (int sockfd, int how) − shutdown函数用于优雅地关闭客户端和服务器之间的通信。与close函数相比,此函数提供了更多控制。成功时返回0,否则返回-1。
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) − 此函数用于读取或写入多个套接字。
套接字辅助函数
int write (int fildes, const void *buf, int nbyte) − write函数尝试将buf指向的缓冲区的nbyte字节写入与打开的文件描述符fildes关联的文件。成功完成时,write()返回实际写入与fildes关联的文件的字节数。此数字永不大于nbyte。否则,返回-1。
int read (int fildes, const void *buf, int nbyte) − read函数尝试将与打开的文件描述符fildes关联的文件的nbyte字节读取到buf指向的缓冲区中。成功完成时,write()返回实际写入与fildes关联的文件的字节数。此数字永不大于nbyte。否则,返回-1。
int fork (void) − fork函数创建一个新的进程。新进程(称为子进程)将是调用进程(父进程)的精确副本。
void bzero (void *s, int nbyte) − bzero函数在字符串s中放置nbyte个空字节。此函数将用于使用空值设置所有套接字结构。
int bcmp (const void *s1, const void *s2, int nbyte) − bcmp函数将字节字符串s1与字节字符串s2进行比较。假定两个字符串的长度均为nbyte字节。
void bcopy (const void *s1, void *s2, int nbyte) − bcopy函数将nbyte字节从字符串s1复制到字符串s2。重叠字符串可以正确处理。
void *memset(void *s, int c, int nbyte) − memset函数也用于像bzero一样设置结构体变量。