zoukankan      html  css  js  c++  java
  • 非阻塞socket中read、write返回值

    read返回值

    >0   读取数据的长度

    =0   接收到对端发送的FIN,表示对端的写端关闭。

    <0   如果errno=EINTR。收到信号并从信号处理函数返回时,慢系统调用会返回并设置errno为EINTR,应该重新调用read。

        如果errno=EAGAIN。表示当前暂时没有数据可读,应该稍后读取。

           其它一般表示出错。

    write返回值

    >0   接收数据的长度

    <0   如果errno=EINTR。收到信号并从信号处理函数返回时,慢系统调用会返回并设置errno为EINTR,应该重新调用write。

        如果errno=EAGAIN。可能是缓冲区已满,应该稍后发送。

           其它一般表示出错。

    ps:如果向已经关闭的对端调用write,系统会向程序发送SIGPIPE信号,该信号默认会退出程序,应该捕获该信号。

  • 相关阅读:
    Flask之flask-script
    Flask之flask-sqlalchemy
    sqlalchemy之基础操作
    Linux之服务管理
    python之PEP8规范
    app开发-1
    Mongodb之pymongo
    Mongodb之增删改查操作
    Mongodb之数据类型
    linux的virtualenv和virtualenvwarpper
  • 原文地址:https://www.cnblogs.com/runnyu/p/5054968.html
Copyright © 2011-2022 走看看