我试图打断
[NSOutputstream write]
连接丢失时。
但是,即使我使用
关闭流,它似乎仍会继续阻塞[NSOutputstream close].
当我失去服务器连接时,我尝试实现的只是重新连接。
我尝试在发送呼叫之前安排NSTimer - 如果发送呼叫未能在间隔内完成(类似于5秒),它的作用是关闭流但是关闭操作根本不影响流。它继续阻止。叹息。
如果断开连接,如何实现与服务器的自动重新连接?
答案 0 :(得分:1)
使用流做的最好的事情是使用scheduleInRunLoop:forMode在线程运行循环上注册它们并处理提出的委托事件,告诉您何时有能力写入,何时有数据要读取和当有错误时。
通过这种方式,您可以有效地与网络堆栈进行交互,并且当您通过委托事件检测到错误时,可以重新连接并将新流添加到运行循环中。
注意:调用close将从运行循环中删除流。