关闭NSOutputstream& NSInputstream

时间:2015-03-26 11:28:49

标签: ios objective-c

我试图打断

[NSOutputstream write] 

连接丢失时。

但是,即使我使用

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

当我失去服务器连接时,我尝试实现的只是重新连接。

我尝试在发送呼叫之前安排NSTimer - 如果发送呼叫未能在间隔内完成(类似于5秒),它的作用是关闭流但是关闭操作根本不影响流。它继续阻止。叹息。

如果断开连接,如何实现与服务器的自动重新连接?

1 个答案:

答案 0 :(得分:1)

使用流做的最好的事情是使用scheduleInRunLoop:forMode在线程运行循环上注册它们并处理提出的委托事件,告诉您何时有能力写入,何时有数据要读取和当有错误时。

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

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