zoukankan      html  css  js  c++  java
  • 网络函数[00]函数总述

    3 -- recv函数
    #include <sys/socket.h>
    
    ssize_t recv(int socket, void * buffer, size_t length, int flags);
    
    返回值:
    >0:读取数据成功,返回值表示本次读取数据的Byte数目;
    =0:表示当前套接口已没有数据可读取,并且被对端主动关闭了;
    -1:读取数据失败,系统设置相应errno值,具体错误原因及后续采取的应对措施需参考errno;
    
    recv的相关说明:
    recv函数的作用就是"receive a message from a connected socket ",也就是在已连接的套接口上读取数据,可见它适用于TCP协议,不适合UDP协议。

    recv错误原因及应对措施:
    ret == -1 && errno == EAGAIN or EWOULDBLOCK
    该错误码表示非阻塞的套接口上当前已没有数据可读。

    这种情况下,不再尝试从该套接口上读取数据,将其放入select或者epoll中等待再次变为可读。

    ret == -1 && errno == ECONNRESET
    该错误码表示连接被对端强制关闭。

    这种情况下,将该文件描述符从进程中移除。如果继续向对端发送数据,需要再次建立连接后发送。
  • 相关阅读:
    html+css设计简单的博客首页
    js基础知识总结(一)
    css基础知识总结
    HTML基础知识
    链表常见题目--附具体分析和代码
    程序的内存分配
    python线程互斥锁递归锁死锁
    动态规划算法python实现
    ECMAScript 6 开篇准备
    弦生成器
  • 原文地址:https://www.cnblogs.com/motadou/p/1861998.html
Copyright © 2011-2022 走看看