Linux网络编程入门 互动版

本节介绍下数据通信的API,即数据读函数(接受数据函数)和写函数(发送数据函数)。

#include <sys/socket.h>
ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);
ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);

参数说明如下:

/**
  * 读数据
  *
  * @param sockfd 指定发送端套接字描述符。
  * @param buff  存放要发送数据的缓冲区
  * @param nbytes 实际要发送的数据的字节数
  * @param flags 一般设置为0
  * @return 函数执行成功返回实际写入数据的长度,失败返回-1
*/
ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);

send函数就是往sockfd上写入数据,从而完成数据发送。

/**
  * 读数据
  *
  * @param sockfd 指定接收端套接字描述符。
  * @param buff  存放recv函数接收到的数据的缓冲区
  * @param nbytes 指明buff的长度
  * @param flags 一般设置为0
  * @return 函数执行成功返回实际读取数据的长度,返回0说明通信对方关闭连接了,失败返回-1
*/
ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);

recv函数就是读取sockfd上的数据,从而完成数据接受。