zoukankan      html  css  js  c++  java
  • 网络函数[09]网络发送函数解析

    1 -- recv函数详解
    #include <sys/socket.h>
    
    ssize_t recv(int socket, void * buffer, size_t length, int flags);
    
    返回值:
    >0:读取数据成功,返回值表示本次读取数据的Byte数目;
    =0:表示当前套接口已没有数据可读取,并且被对端主动关闭了;
    -1:读取数据失败,系统设置相应errno值,具体错误原因及应对措施需参考errno;
    


    recv函数返回-1时,需要判断errno来决定应对措施。下面我试着讲述这些errno以及产生原因。

    EAGAIN or EWOULDBLOCK
    产生原因:当socket被设置为非阻塞链接,并且当前套接口上没有数据可读时,产生这个错误码。

    应对措施:不关闭当前链接,将该fd放入到监听队列中,等待其变为可读后,再次进行读取。

  • 相关阅读:
    Oracle 操作数据库(增删改语句)
    web----框架基础
    js----DOM对象
    易错之for循环
    python调用修改变量新方法
    js----基础
    web----Twisted
    web----Socket
    python----面向对象(2)
    python----面向对象
  • 原文地址:https://www.cnblogs.com/motadou/p/1925789.html
Copyright © 2011-2022 走看看