【问题标题】:what if Poco StreamSocket.available() returns 0?如果 Poco StreamSocket.available() 返回 0 怎么办?
【发布时间】:2014-06-24 02:09:42
【问题描述】:

StreamSocket.available()会在什么情况下返回0?

在这种情况下我应该怎么做?我应该关闭连接,还是忽略它?有猜测是系统真的很忙导致返回StreamSocket 0字节。

【问题讨论】:

  • 是否用于检查连接是否关闭?
  • 顺便说一句,StreamSocket.available() 在 onReadable() 函数中被调用。
  • 如果你在使用 Reactor 框架,并且调用了 onReadable() 回调,那么有一些数据要读取,并且 available() 不应该返回 0。

标签: poco-libraries


【解决方案1】:

您应该做什么取决于您的应用程序的逻辑。如果 available() 返回 0 并且您期望一些数据,则表示它尚未到达,您可能希望继续查询或简单地调用 receiveBytes()(如果套接字处于阻塞模式,它将阻塞直到数据到达)。如果receiveBytes() 返回0,那么远端已经关闭或重置连接,你也应该放弃它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    相关资源
    最近更新 更多