NSStream关闭和打开错误

问题描述:

我正在使用NSStream通过网络连接发送和接收单个字符。
我使用CFStreamCreatePairWithSocketToCFHost(...)实例化流读取和写入。NSStream关闭和打开错误

发送和接收的基本工作机制工作正常。

现在我想创建NSStream只有当我需要发送或接收的东西(通常每2分钟一次)。我第一次创建流,发送数据包,关闭它,一切正常。接下来,我尝试重新创建NSStream(创建一个新的套接字并打开它的流),打开功能不起作用。由于我使用netcat进行测试,因此我发现在使用[NSStream close]方法关闭流时,服务器上的连接未关闭。我如何强制关闭套接字?或者有更好的方法去做我想做的事情?

+0

你是否关闭了两端的流? – Wain

+0

不,我只关闭iPhone上的流。我无法关闭它在另一边 – Pablosproject

使用CFWriteStreamSetPropertyCFReadStreamSetPropertykCFStreamPropertyShouldCloseNativeSocket设置为kCFBooleanTrue,以便在关闭流时关闭底层套接字。

+0

我试过这个解决方案,但套接字不会关闭。如果我将CFReadStreamRef和CFWriteStreamRef转换为NSOutputStream和NSINputStream,可能会丢失它的属性? – Pablosproject

+0

我解决了。我必须打开两个流并关闭它们,而不是关闭。 – Pablosproject