【问题标题】:Closing an NSOutputstream & NSInputstream关闭一个 NSOutputstream 和 NSInputstream
【发布时间】:2015-03-26 11:28:48
【问题描述】:

我想打断一下

[NSOutputstream write] 

当连接丢失时。

但是,即使我使用

关闭流,它似乎仍会继续阻塞
[NSOutputstream close].

我想要实现的只是在服务器连接丢失时重新连接。

我尝试在发送调用之前安排一个 NSTimer - 如果发送调用未能在间隔(大约 5 秒)内完成,它的作用是关闭流,但关闭操作根本不影响流.它继续阻塞。叹息。

如何在断开连接的情况下自动重新连接到服务器?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    对流最好的做法是使用scheduleInRunLoop:forMode 在线程运行循环中注册它们并处理引发的委托事件,这些事件会告诉您何时有写入能力、何时有数据可读取以及何时存在是错误。

    通过这种方式,您可以有效地与网络堆栈进行交互,并且当您通过委托事件检测到错误时,您可以重新连接并将新流添加到运行循环中。

    注意:调用 close 将从运行循环中删除流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多