iOS的GCDAsyncSocket没有写出缓冲区

时间:2012-08-17 22:24:12

标签: ios sockets cocoaasyncsocket gcdasyncsocket

基本上我写了一个NSData对象:

[asyncSocket writeData:JSONRequestData withTimeout:-1 tag:1];

运行时,调用委托

- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag

但由于某种原因,当写入缓冲区时...它没有写入服务器。

当我停止构建时,我猜套接字决定写一切,服务器最终会看到它。

我该如何解决这个问题?没有办法刷新CocoaAsyncSocket,因为它没有必要...... 我已经尝试添加行结尾,比如“/ n”和所有,但这也没有做任何事情。

1 个答案:

答案 0 :(得分:3)

这是基于user523234的建议。

基本上你写的NSData需要有一些信号告诉套接字不会有更多的数据进入。

我附上了

[GCDAsyncSocket CRLFData];

到NSData对象

注意:使用

appendData:

方法,您必须将NSData转换为NSMutableData。