C语言recv函数源码
时间: 2023-02-06 14:05:29 浏览: 170
recv 函数是用于接收网络数据的常见函数,它通常用于从套接字中读取数据。
recv 函数的原型如下:
```
#include <sys/socket.h>
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
```
其中,sockfd 是套接字描述符,buf 是接收数据的缓冲区,len 是缓冲区的大小,flags 是可选的标志。
这个函数的作用是从 sockfd 指定的套接字中读取数据,并将其存储到 buf 指向的缓冲区中。它返回实际读取到的字节数,如果没有数据可读,则返回 0,如果出现错误,则返回 -1。
recv 函数通常用于 TCP 套接字,但也可用于其他类型的套接字,如 UDP 套接字。
下面是一个简单的 recv 函数的使用示例:
```
#include <sys/socket.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int sockfd;
char buffer[1024];
int n;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
n = recv(sockfd, buffer, sizeof(buffer), 0);
if (n < 0) {
printf("Error receiving data\n");
}
else {
printf("Received %d bytes: %s\n", n, buffer);
}
return 0;
}
```
在这个例子中,我们创建了一个 TCP 套接字,然后调用 recv 函数从套接字中读取数据。如果成功读取了数据,则打印出
阅读全文