不可能写入:适用于iOS的带AsyncSocket的SSL/TLS



我正在使用iOS版的AsyncSocket。(https://github.com/robbiehanson/CocoaAsyncSocket)

我编写了自己的类来处理与AsyncSocket的连接。我编写了方法writeDate:(NSString*)data,并在我的类中添加了AsyncSocket回调函数。

-(void)writeData: (NSString*) data
{
    NSString *test = [NSString stringWithFormat:@"test"];
    NSData *raw = [test dataUsingEncoding:NSUTF8StringEncoding];
    [socket writeData:raw withTimeout:-1 tag:1];
}

连接工作得很好,如果我试图在[sock-startTLS:setting]之后在"didConnectToHost"中发送消息,它就会工作。

但是,如果我尝试用自己的方法(writeDate:(NSString*)data)和调用发送消息

MyClass *test = [MyClass sharedSSLConnection];
[test writeData:@"test"];

它失败了。我认为问题是,当方法想要在套接字上发送消息时,握手还没有准备好。但我该如何解决这个问题?我没有找到任何解决方案。

谢谢你的帮助!

可能建议您的MyClass存储数据,并等待状态准备就绪onSocketDidSecure,然后发送它?

最新更新