在IOS 7.0中CFStream套接字发送数据包未完成

在IOS 7.0中CFStream套接字发送数据包未完成,ios,objective-c,c,ios7,cfstream,Ios,Objective C,C,Ios7,Cfstream,我使用CFStream套接字向主机发送数据。 首先是工作。 但在第一次之后,主机接收的数据总是被分离的。 例如: 首次发送: Sender: <11223344 55667788> Recver: <11223344 55667788> 谢谢这似乎是一种1/n-1分割技术,可以缓解野兽攻击 您的服务器可能只支持TLS 1.0。如果您升级服务器以支持TLS1.2,我相信iOS将停止这样做 Sender: <11223344 55667788> Recv

我使用CFStream套接字向主机发送数据。 首先是工作。 但在第一次之后,主机接收的数据总是被分离的。 例如:

首次发送:

Sender:  <11223344 55667788>
Recver:  <11223344 55667788> 

谢谢

这似乎是一种1/n-1分割技术,可以缓解野兽攻击

您的服务器可能只支持TLS 1.0。如果您升级服务器以支持TLS1.2,我相信iOS将停止这样做

Sender:  <11223344 55667788>
Recver:  <11>
Recver:  <223344 55667788> 
enter code here
CFReadStreamRef inputStream;
CFWriteStreamRef outputStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)_owner.ip, _owner.port, &inputStream, &outputStream);
NSDictionary *sslSettings = @{(id)kCFStreamSSLValidatesCertificateChain: (id)kCFBooleanFalse};
CFReadStreamSetProperty(inputStream, kCFStreamPropertySocketSecurityLevel, kCFStreamSocketSecurityLevelTLSv1);
CFReadStreamSetProperty(inputStream, kCFStreamPropertySSLSettings, (__bridge CFTypeRef)(sslSettings));
CFWriteStreamSetProperty(outputStream, kCFStreamPropertySocketSecurityLevel, kCFStreamSocketSecurityLevelTLSv1);
CFWriteStreamSetProperty(outputStream, kCFStreamPropertySSLSettings, (__bridge CFTypeRef)(sslSettings));
_inputStream = (__bridge_transfer NSInputStream *)inputStream;
[_inputStream setDelegate:self];
[_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

_outputStream = (__bridge_transfer NSOutputStream *)outputStream;
[_outputStream setDelegate:self];
[_outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

[_inputStream open];
[_outputStream open];