Ios NSStream关闭和打开错误

Ios NSStream关闭和打开错误,ios,network-programming,nsstream,cfstream,Ios,Network Programming,Nsstream,Cfstream,我正在使用NSStream通过网络连接发送和接收单个字符。 我使用CFStreamCreatePairWithSocketToCFHost(…)实例化流以进行读取和写入 发送和接收的基本工作机制工作正常 现在,我只想在需要发送或接收内容时(通常每2分钟一次)创建NSStream。第一次创建流、发送数据包、关闭数据包时,一切都很顺利。接下来,我尝试重新创建NSStream(创建一个新套接字并在其上打开流),打开功能不起作用。由于我正在使用netcat对其进行测试,我发现当我使用[NSStream

我正在使用NSStream通过网络连接发送和接收单个字符。
我使用
CFStreamCreatePairWithSocketToCFHost(…)
实例化流以进行读取和写入

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


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

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

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

是否关闭两端的流?否。我只关闭iPhone上的流。我无法在另一端关闭它。你正在关闭两端的流吗?不。我只在iPhone上关闭流。我无法在另一侧关闭它。我尝试了此解决方案,但插座无法关闭。如果我将CFReadStreamRef和CFWriteStreamRef转换为NSOutputStream和NSINputStream,可能会丢失属性?我解决了。我必须打开两个流并同时关闭这两个流,但它不会关闭。我尝试了此解决方案,但套接字不会关闭。如果我将CFReadStreamRef和CFWriteStreamRef转换为NSOutputStream和NSINputStream,可能会丢失属性?我解决了。我必须打开两条流,关闭两条流,但它不会关闭。