[英]CFStream Socket send packet not complete in IOS 7.0
I use CFStream Socket send data to Host. 我使用CFStream Socket向Host发送数据。 The first send is work.
第一次发送就是工作。 But after first, the data recv by host always be sperated.
但是首先,主机的数据总是被分配。 For example:
例如:
First time Send: 第一次发送:
Sender: <11223344 55667788>
Recver: <11223344 55667788>
ok it's good 好吧,这很好
second time, third time... 第二次,第三次......
Sender: <11223344 55667788>
Recver: <11>
Recver: <223344 55667788>
This symptom only happened in IOS 7.0. 此症状仅发生在IOS 7.0中。 There are no this symptom in 6.0, 5.0...
在6.0,5.0中没有这种症状......
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];
Thanks 谢谢
This seems like the 1/n-1 split technique to mitigate BEAST attacks. 这似乎是1 / n-1分裂技术,可以缓解BEAST攻击。 http://threatpost.com/apple-turns-on-safari-beast-attack-mitigation-by-default-in-os-x-mavericks/102804
http://threatpost.com/apple-turns-on-safari-beast-attack-mitigation-by-default-in-os-x-mavericks/102804
Your server probably only supports TLS 1.0. 您的服务器可能只支持TLS 1.0。 If you upgrade your server to support TLS 1.2, I believe iOS will stop doing this.
如果您升级服务器以支持TLS 1.2,我相信iOS将停止这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.