socket网络编程中返回值的含义
正文 最近学习socket网络编程,总结一下其中recv和send的返回值以及对应的含义 recv()方法 模型: #include <sys/types.h> #include <sys/socket.h> ssize_t recv(int sockfd, void *buf, size_t len, int flags); 参数: sockfd:创建的文件描述符fd buf:接收数据的缓冲区 len:接收数据的长度 flags:表示信息,默认设置为0 当应用程序调用recv接收数据的时候,recv函数会等待sockfd中发送数据的缓冲区的协议发送完数据,如果在等待过程中出现网络错误,则会返回SOCKET_ERROR。如果sockfd中的缓冲区中没有数据或者协议已经发送完数据,则recv会检查sockfd的接收缓冲区,如果该缓冲区正在接收数据,则recv会一直等待,直到缓冲区接收数据完毕,之后recv将数据从缓冲区拷贝一份至buf中。注意,数据是通过协议转发的,recv()只是将数据从缓冲区拷贝过来。如果recv()在拷贝数据时出现错误,则返回SOCK....