总结了一些网络编程中常用的API函数。
int socket(int domain,int type,int protocol);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:创建一个套接字。
- 返回值:创建成功返回一个套接字的文件描述符,失败返回 -1。
- 参数:
domain:协议族。
type:套接字类型。
protocol:协议,一般设置为0 。
int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:把一个本地协议地址赋予一个套接字。
- 返回值:成功返回 0,失败返回 -1。
- 参数:
sockfd:socket描述符。
*addr:指向于特定协议的地址结构的指针。
addrlen:该地址结构的长度。
int listen(int sockfd,int backlog);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:将套接字转换为监听状态,仅由服务器调用。
- 返回值:成功返回 0,失败返回 -1。
- 参数:
sockfd:socket描述符。
backlog:未完成连接队列与已完成连接队列的总和的最大值。
int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:从已完成连接队列头返回下一个已完成连接,由TCP服务器调用。
- 返回值:成功返回一个非负描述符,失败返回 -1。
- 参数:
sockfd:socket描述符。
*cliaddr:返回已连接的对端客户进程的协议地址(可选)。
*addrlen:指向存储cliaddr地址的长度(可选)。
int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:建立与TCP服务器的连接,由TCP客户端调用。
- 返回值:成功返回 0,失败返回 -1。
- 参数:
sockfd:socket描述符。
*servaddr:指向套接字地址结构的指针,套接字地址结构必须包含服务器的IP地址和端口号。
addrlen:servaddr的大小。
int send(int sockfd,const void *buf,size_t len,int flags);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:向已连接的套接字发送数据。
- 返回值:成功返回已发送数据的字节数,失败返回 -1。
- 参数:
sockfd:已连接的socket描述符。
*buf:待发送数据的缓冲区。
len:发送缓冲区中数据的长度。
flags:调用执行方式。
int recv(int sockfd,void *buf,size_t len,int flags);
所需头文件:<sys/types.h>,<sys/socket.h>
- 函数作用:从已连接的套接字接收数据。
- 返回值:成功返回已接收数据的字节数,失败返回 -1。
- 参数:
sockfd:已连接的socket描述符。
*buf:待接收数据的缓冲区。
len:接收缓冲区中数据的长度。
flags:调用执行方式。